三目运算符---类型自动提升
来源:互联网 发布:怎么样自学编程 编辑:程序博客网 时间:2024/06/08 14:41
今天偶然发现一问题,代码如下:
- public static void main(String[] args) {
- int i=99;
- System.out.println("99999判断结果:"+(true?'a':99999));
- System.out.println("-1判断结果 :"+(true?'a':-1));
- System.out.println("0判断结果 :"+(true?'a':0));
- System.out.println("65535判断结果:"+(true?'a':65535));
- System.out.println("65536判断结果:"+(true?'a':65536));
- System.out.println("i判断结果 :"+(true?'a':i));
- }
涉及到了三目运算中类型自动提升的一些问题,运算结果如下:
- 99999判断结果:97
- -1判断结果 :97
- 0判断结果 :a
- 65535判断结果:a
- 65536判断结果:97
- i判断结果 :97
总结出了以下的结论:
(1)假如表达式1和表达式2具有相同的类型,那么整个条件运算符结果的类型就是这个类型。
(2)假如一个表达式的类型是T,T是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型T表示的(也就是说,常量表达式的值是在类型T的取值范围之内),那么整个条件运算符结果的类型就是T。
(3)除以上情况外,假如表达式1和表达式2的类型不同,那么将进行类型提升,整个条件运算符结果的类型就是提升后的类型
根据上述结论可以看出,参考结论(2)char类型的取值范围为0-65535,在char取值范围中均会返回char类型的值,所以输出a。-1和65536超出了char的取值范围,所以类型提升为int型,输出a对应的ascii码。最后一条判断,已经明确了i为int类型,所以根据结论三,类型提升,输出结果97。
- 三目运算符----类型自动提升
- 三目运算符---类型自动提升
- java--三目运算符 类型自动提升
- Java三目运算符数值类型的自动转换
- Java进行三目运算时的自动类型转换
- 关于三元运算符中的类型提升
- 关于三元运算符中的类型提升
- 关于自动类型提升
- 隐式(自动)类型提升
- 隐式(自动)类型提升
- java 自动类型提升
- 自动类型提升
- java自动类型提升
- java 类型自动提升
- java自动类型提升
- 表达式类型自动提升
- 三目运算、可选类型
- 自动提升为int类型
- My97Datepicker一个日期选择控件
- HDU 4382 矩阵乘法
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。
- 删除当前目录
- java常用类解析十一:Random类(Math.random())生成指定范围的随机数或字符
- 三目运算符---类型自动提升
- 存储过程入门与提高
- 重启Explorer
- framework 下的api在frameworks/base/api/这个路径下
- Shell数值、字符串比较
- myeclipse9.0 安装svn (详细步骤,肯定成功)
- 多页打印
- 数据库菜鸟不可不看 简单SQL语句小结
- java常用类解析十:Date类和Calendar类示例