这个哪里错误了 a为3 b为2 请求指出来 还有怎么改

就是我已经输入a =3 b=2了

img

a+=b等同于a=a+b,所以你后续得a已经不是3了,而是5了。

img

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);下面都是以此类推