(a<5)?10.9:9 首先会编译不通过,这个题目稍微给你扩展下: public float get() { int a = 5; return a>5?10.9:9; } 你说这个方法的返回值是9还是9.0 ,如果返回类型是int的话,10.9那里也会报告错误,编译不通过
根据答案的解释,我想这道题的原型是这样的:public class Test { public static void main(String[] args) { int a = 5; System.out.println(a<5 ? 10.9 : 9); } }关键在a>5 ? 10.9 :9段代码,就是答案所解释的那样。 Java在进行多种数据类型混合运算的时候,会进行自动转换,转化遵循一定的规则,其中一条就是“容量小的类型自动转换成容量小的类型”,本例中有int,double,所以在运算的过程中,首先将5转换成5.0,将9装换成9.0,然后进行运算,结果为9.0
public float get() {
int a = 5;
return a>5?10.9:9;
}
你说这个方法的返回值是9还是9.0 ,如果返回类型是int的话,10.9那里也会报告错误,编译不通过
public static void main(String[] args) {
int a = 5;
System.out.println(a<5 ? 10.9 : 9);
}
}关键在a>5 ? 10.9 :9段代码,就是答案所解释的那样。
Java在进行多种数据类型混合运算的时候,会进行自动转换,转化遵循一定的规则,其中一条就是“容量小的类型自动转换成容量小的类型”,本例中有int,double,所以在运算的过程中,首先将5转换成5.0,将9装换成9.0,然后进行运算,结果为9.0
http://bbs.csdn.net/topics/240008091
看4楼和12楼