就是我已经输入a =3 b=2了
a+=b等同于a=a+b,所以你后续得a已经不是3了,而是5了。
sum=a+b
a+=b是个什么鬼
首先你要了解 运算符与等于组和 代表的就是另一种运算了
例如 a+=b
代表着 可以先简单理解为 a = a+b
建议复习:java运算符优先级 - GavinYao - 博客园
可能是我没讲清楚 是我想要用temp a
为3
b为2
计算出 sum为5
chu为1.5
cheng为6
赋值如果搞不太清建议一行保持一个等号,你要的效果:
private void calculate(int a, int b){
//sum=2+3=5
sum=a+b;
//temp=3
temp=a;
//chu=3.0/2=1.5
chu=temp/b;
//cheng=3*2=6
cheng=temp*b;
}
简单点可以认为赋值符号右侧的运算先算,算完再改变左侧的值。
sum=a+=b;
等价于sum=(a+=b);
等价于sum=(a=a+b);
等价于sum=(a=(a+b));
等价于a=a+b;sum=a;
等价于a+=b;sum=a;
有不懂的可以问我,有空会回复
普通的加法就用小学数学的写法sum = a+b 就可以,不要用+=
sum=a+=b 等价于 sum= a = (a+b),这个时候a的值就变成a+b,也就是5了
其实就是一个运算符的优先级问题,他会先sum=a+=b,先计算 sum = a + b(sum=5,a=3,b=2); 之后计算 a=a+b(a=5,b=2);下面都是以此类推