三目运算符之类型转化

---恢复内容开始---

System.out.println(3<2?'a':98)

---恢复内容结束---

System.out.println(3<2?'a':98)

三目运算符尽量保持两个操作数的类型一致,避免出现异常

附:转换规则

    若两个操作数不可转换,则不做转换,返回值为Object类型
    若两个操作数是明确的类型,按照基础数据类型的转换规则来处理(不包括boolean)
    转换规则:从存储范围小的类型到存储范围大的类型。
    具体规则为:byte→short(char)→int→long→float→double
具体如下:

(1)如果表达式1和表达式2具有相同的类型,那么整个条件运算符结果的类型就是这个类型。

(2)如果一个表达式的类型是T,T是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型T表示的(也就是说,常量表达式的值是在类型T的取值范围之内),那么整个条件运算符结果的类型就是T。

(3)除以上情况外,如果表达式1和表达式2的类型不同,那么将进行类型提升(小转大),整个条件运算符结果的类型就是提升后的类型。


 
原文地址:https://www.cnblogs.com/wskb/p/10959412.html