首页 > 编程知识 正文

三元运算符是(三元运算符例子)

时间:2023-05-05 08:09:02 阅读:92952 作者:2487

简单介绍

三元运算符(也叫三目运算符) )应该大家都用过,我就简单介绍一下。 在此不作说明。

三元元素的格式:“条件控制语句”? 【式1】:【式2】。

好处:

一些简单的逻辑判断三元运算符可以简化代码,去除多余的if-else语句。

缺点:

三元运算符必须是返回值,不能使用无返回值的表达式。

使用时请注意一点,考虑实际情况后再使用!

采坑经历

本人的真实经历,希望大家分享,少踩坑,早日成为勤奋的故事()每个程序员都有成为勤奋故事的心,我也不例外。 哈哈……) 不用说,直接上问题代码。

//*

* * *实际代码不太清楚,但下面的代码是我模拟实现的。

*/

公共类演示2

publicstaticvoidmain (字符串[ ]数组) {

//初始化3个变量

整数编号1=20;

整数编号2=30;

整数编号3=空;

//式

整数结果=编号1编号2? 编号1编号2 :编号3;

System.out.printf ('三元表达式的结果为%d ',result );

}

}上面的代码。 知道错误吗? 如果不仔细看的话,也许找不到问题,但我会给你看一下控制台的执行结果。

看到这个错误,我愣住了。 明显有包装类收到的返回值吗? 不应该报告空指针错了吗? 然后,对class文件进行了反编译。 此时错误一目了然。

真相大白! 表达式1和表达式2对齐时抛出空指针异常。 那么,什么时候类型齐全呢? 总结了以下2种类型的开箱操作。

1 .式1和式2中的某一个是基本数据类型。 2 .如果表达式1和表达式2的值类型不一致,则强制开箱升级为更大范围的表达式类型。

解决方案

解决方案非常简单,直接上传到代码中。

publicstaticvoidmain (字符串[ ]数组) {

整数编号1=20;

整数编号2=30;

整数编号3=空;

如果将//式的数据类型全部转换为统一的,就可以有效地避免这个问题。

整数结果=编号1编号2? integer.value of (编号1编号2 ) :编号3;

System.out.printf ('三元表达式的结果为%d ',result );

}对上面代码的. class文件进行了反编译。

今天的共享到此为止。 如果你们喜欢我写的文章的话,请不要吝惜对方的赞扬。

放弃太早的话,你永远都不知道自己会错过什么!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。