当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:
运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,
且运算结果与运算符左边数值类型相同。
比如+=运算的时候其实就相当于int x=10;
x+=10;与x=x+10;是一样的效果的。
但是short类型中,在运算的时候就需要注意了
比如:short s=10;
s+=10;这样可以编译通过,但是这时如果写 s=s+10;编译时就会报错了,这是因为s是short类型的,而10是int类型的,右边的s与10运算完了以后short类弄会自动转换成int类型,而左边的s是个short类型的变量,右边的int类型的值是不能赋给左边的short类型的s的,这时需要将右边的值强制类型转换成short类型,将之改为:
short s=10;
s=(short)(s+10);这样就可以了。
运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,
且运算结果与运算符左边数值类型相同。
比如+=运算的时候其实就相当于int x=10;
x+=10;与x=x+10;是一样的效果的。
但是short类型中,在运算的时候就需要注意了
比如:short s=10;
s+=10;这样可以编译通过,但是这时如果写 s=s+10;编译时就会报错了,这是因为s是short类型的,而10是int类型的,右边的s与10运算完了以后short类弄会自动转换成int类型,而左边的s是个short类型的变量,右边的int类型的值是不能赋给左边的short类型的s的,这时需要将右边的值强制类型转换成short类型,将之改为:
short s=10;
s=(short)(s+10);这样就可以了。