三目运算符 java 急急急急急急

来源:百度知道 编辑:UC知道 时间:2024/09/20 18:32:24
class C {
public static void main(String[] args) {
int i = 10;
if(i<8)
System.out.println(1.0);
else
System.out.println(2);
//System.out.println(i < 8 ? 1.0 : 2);
}
}

为什么用if else 和三目运算符 打印出结果不同 高手解释一下 不胜感谢

因为你的三目中的类型数据类型不同,因此计算的结果会按照最大范围数据的类型进行处理,你这里范围最大的是那个1.0(double),所以虽然返回的结果是2,但也会转换为double类型,即2.0

注意到double型和整形的问题了吗?是不是该进行下类型转换?

System.out.println(i < 8 ? 1.0 : 2);这句有个“1.0”换成了double类型的