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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吃饭工作睡觉   /  2015-11-3 08:03  /  7329 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Jared 中级黑马 2015-11-6 23:42:28
21#
因为b++属于一次运算符,java会把b+1之后的结果自动转换回byte,而b=b+1属于二次运算,b+1结果是int类型,不会自动转换成byte,所以再把这个结果赋值给b会发生类型错误
回复 使用道具 举报
b++ 有强制类型转换回自动将byte类型转为int 类型,但是b=b+1中1为int加入b=127就会超出byte 的-128到-127的取值范围
回复 使用道具 举报
b=b+1;在计算的时候会把b提升为int型,结果自然就是int型,把int型赋给byte型当然就报错了,而++包含了强制类型转换,所以就不报错了
回复 使用道具 举报
没有加强制转换,因为计算机操作1是Int类型的,所以把等号后面的就转换成了int类型,你要用byte强制转换回来才不会报错
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马