黑马程序员技术交流社区

标题: 三元运算符的使用范围 [打印本页]

作者: FlyFish    时间: 2014-10-14 10:52
标题: 三元运算符的使用范围
三元运算符的使用范围?看老毕的视频讲述三元运算符时,有一个表达式是n1>9?(char)(n1-10+'a'):n1;这个值为什么不能强转?
作者: liaorubei    时间: 2014-10-14 11:22
二元运算符要求后两个返回表达式的返回类型是一致的,其他没有什么限制,
从你写出来的代码来看,明显是返回类型不一致,所以是不行的,

你要不第一个个返回类型不用强转,这样两个表达式都返回int,
要不最后一个返回表达式也强转,这样两个都返回char类型.

这个要记到笔记本里面哦,亲
作者: cs8630323    时间: 2014-10-14 11:31
本帖最后由 cs8630323 于 2014-10-14 12:00 编辑

int n1=33;
char w=n1>9?(char)(n1-10+'a'):n1;//出错,说明结果输出会转成int
最后我改成(char)(n1>9?(n1-10+'a'):n1)
为什么会这样,貌似这个有点复杂,java编程规范  有,我也要去翻翻看下

作者: God’s favoure    时间: 2014-10-14 11:37
毕老师视频里面有关于这个使用范围的讲解。
作者: 田峻菘    时间: 2014-10-14 21:55
三元运算符是3个数参与运算,看楼主的题,第二个数和第三个数运算时会发生自动类型提升




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2