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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fengche 中级黑马   /  2013-10-17 22:24  /  1134 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 fengche 于 2013-10-18 11:21 编辑

short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 为什么?

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 新人提问,奖励哦,但问题要深刻一点.

查看全部评分

2 个回复

倒序浏览
short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误、或者精度溢出
short s1 = 1; s1 += 1;+= 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译.当运算结果没有超过short的取值范围是编译就会直接通过、当超过了short的取值范围只会报精度溢出

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 解答详细,帮助新人,奖励一分

查看全部评分

回复 使用道具 举报
如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马