小小运算符之 +=、-=、*=、/=、%=

(首先要知道,byte、short、char这些类型数据与int类型或者它们本身做运算时返回的是int类型)

short s1 = 3;
s1 = s1 + 6;//这样写的话,编译的时候就给你一巴掌拍死!!!
s1为short类型不可以接受int型,除非写成:(short)(s1 + 6)

但是
s1 += 6;//这样写就很ok啦!!!

+=、-=、*=、/=、%= 这些运算符不会改变变量本身的数据类型

下面再来看两个例子
一、
int a = 3;
a = a * 0.1;
System.out.println(a);

二、
int a = 3;
a *= 0.1;
System.out.println(a);
解析:
第一题:编译时候一巴掌拍死你,a * 0.1 得出的double数据怎么可能用 int接收?
第二题:结果是0,还是刚才那句话这些运算符不会改变变量本身的数据类型。
第二题相当于是a = (int)(a * 0.1),a当然是0了。

猜你喜欢

转载自blog.csdn.net/weixin_44709652/article/details/90754529