a=a+5:
这样是不行的,5是int型,32位,a也提升到int,但是得出的和也是int,不能赋值给short型的a。
这个过程进行的是两次运算。
1、a和5相加。
2、所加的和赋值给a。
但是第二句改成a+=5; 是可以的。
这个过程只进行一步运算,把+=两边之和赋值给左边,与第一种方法不同的是,这里会做自动转换数据类型。
多说一点
a+=5;和
short a=4;的过程是一样的,要赋的内容在定义的范围内就可以自动转换,赋值成功。