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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© q491039826 中级黑马   /  2015-8-29 23:42  /  8619 人查看  /  30 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

short s=2的情况下

30 个回复

正序浏览
s+=2;会自动完成整型转换,s=s+2;右边计算后为整型要强制类型、转换,java中的byte char shot在进行算术运算时,默认为整型
回复 使用道具 举报
s=s+2编译报错,是不对的, s+=2 的话会默认进行自动的类型转换
回复 使用道具 举报
s+=2,有自动强转功能,把int类型转为short,所以不报错;后者自动转型为int类型和short类型有冲突,报错
回复 使用道具 举报
s+=2,有强制类型转行,s=s+2,没有强制类型转行,会报错
回复 使用道具 举报
小伙子,这个问题你已经问了很多遍了,,,,,,,,,,,这种锲而不舍的求知的精神让人折服
回复 使用道具 举报
一个带强制转换 一个没有
回复 使用道具 举报
这是考类型转换  += 类型会自动提升
回复 使用道具 举报
Glc90 中级黑马 2015-8-30 23:21:03
24#
区别 s+=2是对的 s=s+2报错,因为short+2最终结果会是int  大类型到小类型 会报错
回复 使用道具 举报
s+=2  在short类型下,它会强制转换成short类型

而s=s+2 是short 类型加上一个int类型,结果还是一个int类型
回复 使用道具 举报
太棒,了 赞一个
回复 使用道具 举报
说白了就是一个会强制转换类型,一个不会
回复 使用道具 举报
没啥区别,当s=2时。。。
回复 使用道具 举报
第一种情况会编译成功,第二种情况会编译失败
回复 使用道具 举报
要考虑精度转换,S+=2 会有自动类型提升
回复 使用道具 举报
wdj 中级黑马 2015-8-30 21:49:26
17#
前者系统会默认有自动类型转换,而后者没有s+2之后会自动转换为int类型而s为short类型,所以会出错。
回复 使用道具 举报
s+=2有强制转换,而s=s+2没有
回复 使用道具 举报
这个问题。。。貌似见过,,呦。。。又貌似没见。。。。。。。。
回复 使用道具 举报
s=s+2会报错。这里2默认为int类型。s+=2中包涵强制转换。可以编译
回复 使用道具 举报
s=s+2中s在相加时会自动向上转型为int型
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马