复合赋值运算符其中隐含了一个强制类型转换。
byte、short、char在参加运算时结果值会自动转向int
byte num1 = 12;
byte num2 = 14;
num1 += num2; // num1 自动转换为 int
num1 = num1 + num2; // 错误
第三行代码可以运行,因为复合运算自动把num1转换为int型
第四行代码不可以,因为byte、short、char在参加运算时结果值会自动转向int。而此时的num1没有转型
复合赋值运算符其中隐含了一个强制类型转换。
byte、short、char在参加运算时结果值会自动转向int
byte num1 = 12;
byte num2 = 14;
num1 += num2; // num1 自动转换为 int
num1 = num1 + num2; // 错误
第三行代码可以运行,因为复合运算自动把num1转换为int型
第四行代码不可以,因为byte、short、char在参加运算时结果值会自动转向int。而此时的num1没有转型