当对byte、short、char类型进行混合运算时,则先把它们都转为int类型,然后在进行运算;
当多种数据类型进行混合运算的时候,先把它们都转为取值范围最大的类型,然后在进行计算;
下面给一个例子进行说明:
编译运行以下程序后,关于输出结果的说明正确的是()
public class Conditional {
public static void main(String[] args) {
int x = 4;
System.out.println(x > 4 ? 99.9 : 9);
}
}
A、输出结果为:value is 99.9
B、输出结果为:value is 9
C、输出结果为value is 9.0
D、编译错误
结果:C
解释:
很明显这是一个三元运算符,由于4=4,所以后面的那个才是结果,不过上面我们也说了“当多种数据类型进行混合运算的时候,先把它们都转为取值范围最大的类型”,取值范围最大的就是double类型,所以转换成double,所以选择C