有这样一道面试题,是关于三目表达式的,代码如下:
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9 :9));
}
问最后打印多少。很多初学者都觉得应该是9. 但结果是9.0,其实也不难理解,我们在运用三目表达式做比较时,一般编译器都会先检查两个数据的类型,这时会将不同精度的数据类型转换成同一种精度的类型。所以会采用隐式转换,将低精度隐式转换为高精度,就是我们看到后的结果!