?:的类型转化

 

 

 

       
 
如下代码的运行结果为哪个? int x=4; System.out.println((x>4)?99.9:9);
 
备选答案:

A : 9
B : 9.0
C : 99.9
D : 99

你的回答:

A
回答结果:
答案: B
答案详解: 因为前面的是99.9 是double类型的,所以系统自动转换到输出double,所以为9.0 而不是9

然后也存在着如下的情况

System.out.println((x>4)?99.9:“9”);

当指定为字符串的时候就会是按照字符串输出,而不会输出9.0了,输出结果则为9

 

再来看下面的语句

System.out.println((x>4)?"99.9":9);

 

因99.9已经被转化了,所以9也不会再进行转化,输出结果仍然为9

你可能感兴趣的:(?:的类型转化)