刚刚上课遇到一个很奇怪的问题属实是震惊到了,题目如下:
public class HelloWorld {
public static void main(String args[]){
int x=4;System.out.println("value is "+((x>4)?99.9:9));
}
}
问题:这个结果的输出是什么?
答:value is 9.0
这不就离谱吗!?然后我试了一下把99.9改为99,发现结果变为了:value is 9
反正我是震惊到了,居然还有这种操作???,就是是三元运算符的结果不单单是:前后的那两个之一,还会综合考虑到他们的类型,会最后以更高基本数据类型为标准,所以将int类型的9变为了更高的float类型的9.0,奇怪的知识又增加了。