首页 > 试题广场 >

下面程序运行之后,关于输出结果的说明正确的是( &

[不定项选择题]
下面程序运行之后,关于输出结果的说明正确的是(     )。
public  class   Conditional{
public  static  void  main(String  args[  ]){
int  x=4;
System.out.println(“value  is  “+ ((x>4) ? 99.9 :9));
}
}
  • 输出结果为:value  is  99.99
  • 输出结果为:value  is  9
  • 输出结果为:value  is  9.0
  • 编译错误
在三目运算符java开发的环境下可以简单的理解为双目运算符的类型转换问题(便于理解)。其具体规则总结如下:
1)如果定义了数据类型的变量与未定义变量的数值共同参与三元运算符的后双目运算,,那么返回的结果就是范围大(精度高)类型
2)如果两个定义了数据类型的变量共同参与三元运算符的后双目运算,那么返回的结果就是范围大(精度高)类型
3)如果直接进行数值的比较,会自动转型成为范围大(精度高)的数据类型

三元操作符必须要返回一个数据。而且类型要确定,不可能条件为真时返回浮点型,条件为假时返回f整型,编译器是不允许如此的,所以它就会进行类型转换了. 会根据运算符的精确度类型进行自动类型转换,System.out.println(“value  is  “+ ((x>4) ? 99.9 :9));  由于前面有一个99.9,所以后面的9会被转换成9.0,所以输出的是9.0.


发表于 2021-03-04 09:14:49 回复(0)
冒号后面的值会转变成冒号前面值的类型,不知道为啥,求解释
发表于 2019-09-18 11:55:53 回复(1)