三目运算符

无人久伴 提交于 2019-12-03 14:15:34

一:

  三目运算符即 条件 ? 返回值1 : 返回值2;

  在使用三目运算符时,尽量保证两个返回值的类型一致,不然会触发类型转换

1 int a = 1, b = 2;
2 System.out.println(a == b ? 9.9 : 9);
3 System.out.println(a == b ? 'a' : 98);
4 System.out.println(a == b ? 'a' : Integer.MAX_VALUE);
5 System.out.println(a == b ? 'a' : b);
6 System.out.println(a != b ? 'a' : b);

答案:

  

 

  如果返回值1和返回值2都是同种类型,那么三目最终的返回类型就是这种类型

  如果返回值1和返回值2不是同种类型,那么三目最终的返回类型是这两种类型的相同最小父类(最接近的父类,如果没有则返回Object,例如Integer和String最终返回的将是Object)。

  对于基本数据类型,有点特殊。如果一个返回值类型为T(T为byte,char或short),另一个为int的常数,那么如果这个常数值在T的取值范围内,则三目最终的返回类型为T,如果常数值不在T的取值范围内,则返回发生自动类型转换。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!