你能清楚地解释一下operator +=和operator =+之间的区别吗?显然,两者都是求和的捷径,但我不明白"=+“的含义
A += b等同于a=a+b。但是=+ b的等价性是什么?
下面是一个实际的例子:
public class SumOfSquares {
private int[] inputArray;
private Integer result;
public SumOfSquares(int[] inputArray) {
this.inputArray=inputArray;
result = new Integer(0);
}
public Integer getResult () {
for (int counter=0; counter<inputArray.length; counter++) {
int currentNumber = inputArray[counter];
result += currentNumber*currentNumber;
}
return result;
}
}inputArray={1,2,3,4,5}。期望的result=55 (1^2+2^2+3^2+4^2+5^2 = 1+4+9+16+25 = 55)如果我用result =+ currentNumber*currentNumber;替换result += currentNumber*currentNumber;,我得到的结果是25而不是55。我想知道为什么。
发布于 2013-07-09 19:05:42
=+不是operator。您可能会将其与赋值=和unary + operator的组合混淆,后者将接受正值(不会更改其符号,+ (-3)仍然为-3),并且可以完全省略整数值。
int a = 5;
int b = 3;
a = (+b); // a = 3
a = (-b); // a = -3发布于 2013-07-09 19:05:55
a=+b与a=0+b相同,换句话说,就是a=b
=+不是运算符。它是赋值运算符=,后跟一个正号+。+应用于右侧的变量,因此您可以将其读取为a= (+b)。
发布于 2013-07-09 19:06:31
a -= b等同于a = a - b,并且
a =- b等同于a = - b
https://stackoverflow.com/questions/17546584
复制相似问题