三元运算符的编译规则

例题如下

    public static void main(String[] args) {
        char x = 'x';
        int i = 10;
        System.out.println(true? x : i);
        System.out.println(true? 'x' : 10);
    }

答案是,120,X

原因解析:

 * 如果其中有一个是变量,按照自动类型转换规则处理成一致的类型;

 * 如果都是常量,如果一个是char,如果另一个是[0~65535]之间的整数按char处理;

 * 如果一个是char,另一个是其他,按照自动类型转换规则处理成一致的类型;

比如 

true?4:10.0----------->结果为4.0

猜你喜欢

转载自www.cnblogs.com/yangxusun9/p/12172619.html