java关于三元运算符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jaylhsh/article/details/65446172

当使用三元运算符,两边的操作数的类型不一致的时候,这就涉及到三元操作符的转换规则:

1.若果两个操作数不可转换,则不做转换,返回值为Object类型。

2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换。int类型转换为long类型,long类型转换成float类型。

3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型为T,那么,若数字S在T的范围内,则转换为T类型;若S超过了T的范围,则T转换为S类型。

4.若两个操作数字都是直接数字。则返回值类型为范围较大者。

eg:

 System.out.println(6>5?90:'B');

控制台打印的是90? 而实际打印出来的 Z

故保证三元操作符中的两个操作类型一致,即可减少错误的发生。

猜你喜欢

转载自blog.csdn.net/jaylhsh/article/details/65446172