三目运算符格式?:,对于如何使用大家都了解,那么使用三目运算符要注意什么呢?
比如int a = 4;
System.out.println((a<4)?5.0:7);
输出结果是什么呢?
相信很多人会说是7,但是结果并不是,因为此三目运算符前面有一个5.0,这时java就会根据运算符的精度类型进行自动转换
前面是5.0,所以此输出结果会是7.0
我们再来看一个
char x = 'x';
int i = 10;
System.out.println(false?i:x);
System.out.println(false?10:x);
这两个输出又是什么呢?
int i = 10中,i是一个变量,所以第一个输出x被提升为int型了,因为i是int型,x的int值为120,所以第一个输出为120
第二个输出是X,这是为什么呢?
java编程规范中提到。当后面两个表达式有一个为常量表达式时,另一个类型是T时,并且常量表达式可以被T表示的时候,输出结果是T,这里10是常量,可以被
char表示,所以输出为char类型,即输出X