赋值运算符中的 +=
- 直接上代码:
short s = 10;
s = s + 3; //报错,编译不通过,
s = (short)(s + 3); //通过
s += 3; //通过
看到 s = s + 3 注释报错,是不是有点奇怪?
是这样的, s数据类型前后有变化,等号左边是short类型,右边是因为加上int类型的3,变成了int类型,左右两边的类型不通过,所以报错。如果一定要用这样的赋值运算,那么就用第三句语句那样,强制类型转换后赋值。s = (short)(s + 1);这样虽然不报错,但是运算复杂。
s += 3; 这句是最简单的,+= 运算符可以简化运算,又不会更变等号右边运算的数据类型。