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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何剑钟 于 2015-3-2 12:09 编辑

今天上完三元运算符,上百度搜索了相关信息,发现了一个有趣的问题,代码如下

int i = 3;
char c = 'X';
double d = 9.0;
System.out.println((true)?x:3);//输出为X
System.out.println((true)?x:i);//输出88
System.out.println((true)?x:3.0);//输出88.0
System.out.println((true)?x:d);//输出88.0

后来我试了几个类型只有三元运算符中表达式3为整数常量时,x作为char类型为什么不会提升数据类型直接输出字符X。我的问题是为什么只有整数常量char不会提升数据类型??老师不是说JAVA默认数据类型是int马?请教高手:'(

2 个回复

倒序浏览
我前段时间也遇到同样的问题,你可以参考看看,希望能帮到你
http://bbs.itheima.com/thread-170062-1-1.html
回复 使用道具 举报
zfgrinm 发表于 2015-3-2 12:24
我前段时间也遇到同样的问题,你可以参考看看,希望能帮到你
http://bbs.itheima.com/thread-170062-1-1.ht ...

谢了,原来int的常量表达式在另一个表达式数据类型的范围内,运算后会是那表达式的数据类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马