int x=4;
if(x>4)?9.99:9;
输出的是9.0
而我如果改成if(x>4)?99:9;
输出的就是9了
这里有进行隐式转换么,比如把int类型的9转换成了double的9.99.求解
你的代码都不能编译。
这里不要写if
9.99:9表达式的类型是double,所以toString()为9.0
99:9,表达式的类型是int,所以toString为9
三目运算符是这样的:A?B:C,若A表达式为真,则三目运算符结果为B表达式的结果, 若A为假,则为C的结果,那么4>4为假,那么三目运算式结果为C,也就是sizeof(A),还有类型转换,比较时把整形的变成double型的
我想知道的你上面的写法能编译通过吗?你那也不是三目运算符啊,你这样写:
int x=4;
double result = (x>4?9.99:9);
java编译器会告诉返回值是int还是double。