三元运算符的编译规则

例题如下

    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

posted @ 2020-01-09 17:27  可以看看你胖次吗  阅读(310)  评论(0编辑  收藏  举报
Live2D