这个 涉及到int 和short 转换的问题。第一个是错误的。第二个应该是正确的。
理由谢啦
@觉信: short +1的话,1默认是int类型。short 和 一个int相加 ,会得到int类型的。
第二个,实现原理不一样,是short的自增加,实现原理不一样。
@無限遐想:
第二个也 会转成 int相加
s1 = s1 + 1; s1 = (short)(s1 + 1)-------是int类型的;
s1=s1+1这个等号的左边是short,等号右边的结果是int(不知道为什么),int是不能隐式转换为short的,所以右边不能赋值给左边.
而第二个+=左右两边都是short所有没错.
两个 都会转成 int 相加,第二个 没有报错是由于 运算符的问题。
+= 只计算一次, = + 是两个运算符了,计算两次,所以报错了。