例子:
short n = 10;
n = n + 1;//编译失败
n += 1;
区别:
n += 1;不会改变变量本身的数据类型。
而n = n + 1;编译失败,因为1默认是int,运算的结果n成了int类型。
拓展练习:
代码:
int i = 1;
i *= 0.1;
System.out.println(i);
i ++;
System.out.println(i);
输出结果:
0
1
原因:1 * 0.1=0.1;但是*=不改变变量的数据类型,float转换成int,所以0.1变成0,再执行i++,结果是1。
综合练习:
代码:
int m = 2;
int n = 3;
n *= m++;
System.out.println("m=" + m);
System.out.println("n=" + n);
输出:
m=3
n=6