编译运行以下程序后,关于输出结果的说法正确的是
public class Conditional{
public static void main(String args[]){
int x=4;
System.out.println("value is "+((x>4)?99.9:9));
}
}
C
A、输出结果为value is 99.99
B、输出结果为value is 9
C、输出结果为value is 9.0
D、编译错误
 为什么不是9

解决方案 »

  1.   

    转型了,
    public class Conditional{
    public static void main(String args[]){
    int x=4;
    System.out.println("value is "+((x>4)?99:9));
    }

    这样就是9  可能在判断前面数字时把后面的9也默认为浮点的了
      

  2.   

    三元运算符 condition ? result1 : result2
    后面的result1 和 result2 必须是相同的类型或者可以互相转换的类型。
    题目这里是int 和 float 类型,返回结果int被扩展成float类型. 故选C.
      

  3.   

    不同类型在同一起的时候,short,char等都会转换成int,int会转换成float或double