欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

a+=b、a-=b、a*=b 与 a=a+b、a=a-b 和 a=a*b 之间的区别(容易混淆)

最编程 2024-03-10 15:35:19
...

乍一看,其实好像没啥区别,很容易理解为另一种形式的简写,这的确在一些情况下是成里的,但是仔细研究后其实运算过程中有一些细微的差别。

差别在于当b是一个算式的时候,往往计算的结果可能不如预期来看下面两个代码

int a = 10;
int b = 20;
System.out.println(a-=b);

这个输出结果毫无疑问是-10

但是当-=右边是一个算式的时候就需要注意了

 int a = 10;
 int b = 20;
 System.out.println(a-=b+3);

这个输出结果是-13

也就是说计算过程是a=a-(b+3)即-=右面的符号会优先进行计算b+3被括号括起来,然后再和a计算

这在字符的运算过程中及其容易出现问题比如

 String s = "abc";
 System.out.println(s+=s.charAt(0)+s.charAt(1));

此时计算过程为s=s+(s.charAt(0)+s.charAt(1))
由于char计算是转成对应的ASCII码来计算,所以结果就成了

abc195
195来自97(a)+98(b)

因此弄懂+=的运算过程十分重要,当b是一个算式的时候,便不能理解为是另一种形式的简写。

推荐阅读