s1=s1+1和s1+=1的区别
2022-06-18 本文已影响0人
糯米团子123
假设s1是short类型,
s1=s1+1 会发生编译异常。
因为s1+1运算时会将s1自动转换成int类型,在做计算。计算结果为int类型,赋给short类型的s1时产生错误。
s1+=1:正常执行。
s1+=1 相当于 s1 = (short) (s1+1),存在隐式强制类型转换,自动提升为计算结果的数据类型。
假设s1是short类型,
s1=s1+1 会发生编译异常。
因为s1+1运算时会将s1自动转换成int类型,在做计算。计算结果为int类型,赋给short类型的s1时产生错误。
s1+=1:正常执行。
s1+=1 相当于 s1 = (short) (s1+1),存在隐式强制类型转换,自动提升为计算结果的数据类型。