char x= ‘a‘; int i=10; System.out.println(false?i:x); System.out.println(false?10:x); System.out.println(false?12.44:x);
97
a
97.0
int i=10; 中的i是一个变量,因此,第一个输出x被提升为int型,因为 i 是int型,x的int值为120,所以第一个输出为120
至于第二个输出,Java编程规范中提到,当后两个表达式有一个是常量表达式(本题中是10)时,另外一个类型是T(本题中为char)时,而常量表达式可以被 T 表示时(representable in type T),输出结果是T类型。所以,因为10是常量,可以被char表示输出结果是char 型的