三目表达式的语法如下:
当我们在进行三目运算符的运算时,一般,表达式1和表达式2的数据类型是一致的,但是有时候在面试的时候往往会有一些比较刁钻的题,这时我们可能需要知道一些原理,以便进行的记忆和理解。
尝试着写出下列语句的输出结果?
public class Main {
public static void main(String[] args) {
System.out.println(false?1.0:99);
char x='x';
int i=10;
System.out.println(false?i:x);
System.out.println(false?x:97);
}
}
结果如下:
99.0
120
a
总结
第一个输出语句的第一个表达式是1.0,第二个表达式是99。这时Java会根据运算符的精度进行自动类型转换。由于1.0的原因,99也会自动变成99.0。因此此题的真正输出为 99.0 。
int i=10;中的i是一个变量,因此,第一个输出x被提升为int型,x的int值为120,所以第二个输出为120
至于第三个输出,Java编程规范中提到:当后两个表达式有一个是常量表达式时,另外一个类型是T时,而常量表达式可以被T表示时,输出结果是T类型。所以,因为97是常量,可以被char表示。输出结果是char型,所以输出为a。