A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© -律- 中级黑马   /  2014-12-23 00:40  /  946 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题所示

4 个回复

倒序浏览
青衫禅客 来自手机 中级黑马 2014-12-23 01:07:04
沙发
这个要看你完整代码了,也许是哪块有个类型提升
回复 使用道具 举报
青衫禅客 发表于 2014-12-23 01:07
这个要看你完整代码了,也许是哪块有个类型提升

在main方法下

直接打印(4<3?99.0:9)
回复 使用道具 举报
本帖最后由 abathe 于 2014-12-23 10:16 编辑
  1. class  Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println(4<3?99:9);                //结果9
  6.                 System.out.println(2<3?99:9);                //结果99
  7.                 System.out.println(4<3?99.0:9);             //结果9.0
  8.                 System.out.println(2<3?99:9.0);            //结果99.0
  9.         }
  10. }
复制代码

测试了以上四种可能,无论判断的结果为ture还是false,结果都会被提升为两者中较高等级的数据类型,这个应该是二元运算内部自动提升的
回复 使用道具 举报
-律- 发表于 2014-12-23 01:18
在main方法下

直接打印(4

系统会自动比较一下两个数类型,double比int的长度范围大,所以以double为主。还有一种情况是char类型和数值常量比较,当数值常量的大小在char类型的长度范围之内,就会自动转换为char类型的结果
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马