当初学Java时听说过三目运算符,偶尔用到,也没在意,直到后来看到某到题目(文中第五段代码)懵逼了,于是看了下题解,自己又码了些代码测试以为自己懂了,直到后来又遇到某情况(文中有,读者自己找)又懵逼了,才发现条件运算符不是那么单纯。
三目操作符的基本功能
条件运算符(?:)是Java中唯一的三目运算符。因此对于Java提到三目操作符,均指条件运算符。条件运算符可以用来进行代替 if else 语句来简化条件分支跳转。例如以下一段常见的代码:
boolean b = true;//boolean b = false;
int a;
if(b)
a = 1;
else
a = 2;
就可以用条件运算符简化为:
boolean b = true;//boolean b = false;
int a = b ? 1 : 2;
以上两段代码的意思都是:当布尔变量b是真时,a将赋值为1,b为false时,a将赋值为2。
所以条件运算符的一个基本用法是:
布尔变量a ? 表达式b : 表达式c; //(true)?1:2;
值得一提的是,b,c都不允许是void类型。
操作符两侧类型不同将会怎样
上面两段代码中,变量a和变量b都是int类型,所以没什么问题。那如果是不同类型会怎么样呢?
Read More.