您的位置:首页 > 编程语言 > Java开发

Java条件表达式结果类型的规则

2014-06-11 11:10 197 查看
条件表达式结果类型转换规则:

System.out.println(false ? 1.0 : 1);

输出: 1.0

不应该输出成: 1

System.out.println( false ? 1 : 'a');

输出: a

System.out.println( false ? 1.0 : 'a');

输出: 97.0

什么表达中1变成1.0,就会输出'a'呢?

System.out.println( true ? 98 : 'a');

输出: b

同上

System.out.println( true ? 98.0 : 'a');

输出:98.0

同上

 

JAVA条件表达式,注意以下几点:

 1、如果冒号两边,是同一种类型,那么该条件表达式的值也是同一种类型。

2、如果其中一边的类型是byte、short或者char(暂且统称为X类型),而且另外一边是int常量(注意是常量),而且这个常量可以用X类型表示(也就是不溢出),那么,结果就是X类型。比如:

System.out.println( true ? 98 : 'a');     输出: b

3、如果不符合上述情况的,则自动隐式转换,即小范围的转换成大范围的,低精度的转换成高精度的类型,最后的结果就是转换后的类型。比如:

System.out.println( false ? 1.0 : 'a');   输出: 97.0

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  条件表达式