三元运算符细节
三元运算符后面两个表达式一定要是变量能接受的类型。
三元运算符可以转成if else,反过来有时也可以。
注意,这只是可以转成,不代表等于,比如
public class test{ public static void main(String[] args){ int x = 1; float y = 2; int z = (int)(x > y ? x : y); System.out.println(z); } }
最后输出结果是2,如果把(x > y ? x : y)完全当成if else语句,那么int z = (int)(x > y ? x : y);从语法上看将是错误的。
所以这个转成,指的是他们之间有一个相同的逻辑:判断条件,然后执行相应的操作,只是这个逻辑相同,实际的赋值操作步骤是可能有出入的。