本帖最后由 参禅悟道 于 2016-2-25 14:39 编辑
抛开楼主的代码,你们打印一下这句代码:
System.out.println(true ? 1 : 2.0);
结果是:1.0我想应该是在进行int和float比较的时候,先把int类型的数据转换成了float类型的也就是:System.out.println(true ? 1.0 : 2.0);
所以打印出结果的时候是1.0
至于上面有人说==比较的是内存地址,这句话并没有错,但是a==num确实返回true,所以三元表达式num == a ? a : num确实打印的是a,只不过这个时候的a已经转换成float类型了。具体我也不是很清楚就不多做评论了
不知道我这样的解释对不对。
|