您好,欢迎来到一二三四网。
搜索
您的当前位置:首页a+=b、a-=b、a*=b和a=a+b、a=a-b以及a=a*b的区别(易混淆)

a+=b、a-=b、a*=b和a=a+b、a=a-b以及a=a*b的区别(易混淆)

来源:一二三四网

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

差别在于当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是一个算式的时候,便不能理解为是另一种形式的简写。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.net 版权所有 湘ICP备2023021910号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务