三元运算符细节


三元运算符后面两个表达式一定要是变量能接受的类型。

三元运算符可以转成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);从语法上看将是错误的。

所以这个转成,指的是他们之间有一个相同的逻辑:判断条件,然后执行相应的操作,只是这个逻辑相同,实际的赋值操作步骤是可能有出入的。