当前位置: 代码迷 >> Java相关 >> 关于三目运算符的一个小问题
  详细解决方案

关于三目运算符的一个小问题

热度:179   发布时间:2009-07-23 00:24:03.0
关于三目运算符的一个小问题
int x=4;
System.out.println("value is "+ ((x>4) ? 99.9 :9));
的输出为什么是value is 9.0而不是9
而把99.9改成99的话,输出就变成value is 9了
三目运算符会自动转型吗
搜索更多相关的解决方案: 运算符  

----------------解决方案--------------------------------------------------------
If one of the operands is of type byte or Byte and the other is of type short or Short, then the type of the conditional expression is short.
If one of the operands is of type T where T is byte, short, or char, and the other operand is a constant expression of type int whose value is representable in type T, then the type of the conditional expression is T.

If one of the operands is of type Byte and the other operand is a constant expression of type int whose value is representable in type byte, then the type of the conditional expression is byte.

If one of the operands is of type Short and the other operand is a constant expression of type int whose value is representable in type short, then the type of the conditional expression is short.

If one of the operands is of type; Character and the other operand is a constant expression of type int whose value is representable in type char, then the type of the conditional expression is char.

以上的就是规范原文

   (1)假如表达式1和表达式2具有相同的类型,那么整个条件运算符结果的类型就是这个类型。
   (2)假如一个表达式的类型是T,T是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型T表示的(也就是说,常量表达式的值是在类型T的取值范围之内),那么整个条件运算符结果的类型就是T。
    (3)除以上情况外,假如表达式1和表达式2的类型不同,那么将进行类型提升,整个条件运算符结果的类型就是提升后的类型。

[[it] 本帖最后由 lampeter123 于 2009-7-23 08:22 编辑 [/it]]
----------------解决方案--------------------------------------------------------
这样啊 还没有发现原来这个操作符还有这个用处啊
----------------解决方案--------------------------------------------------------
感谢lampeter兄的指点,学到新东西了...
----------------解决方案--------------------------------------------------------
回帖是一种美德!传说每次回
帖即可获得 10 分可用积分!

学习下三目运算。呵呵
----------------解决方案--------------------------------------------------------
很多偏门的东西可以去看下Java解惑
----------------解决方案--------------------------------------------------------
又学到东西了,感谢感谢lampeter兄的指点。
----------------解决方案--------------------------------------------------------
  相关解决方案