2

你能清楚地解释运算符 += 和运算符 =+ 之间的区别吗?显然,两者都是求和的快捷方式,但我不明白“=+”的含义

a += b 等价于 a = a + b。但是 a =+ 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。我想了解原因。

4

4 回答 4

7

=+不是运算符。您可能会将它与赋值=一元运算+的组合混淆,后者会将值视为正数(不改变其符号,+ (-3)仍然是-3),并且对于整数值可以完全省略。

int a = 5;
int b = 3;

a = (+b); // a = 3
a = (-b); // a = -3

+ 一元加运算符;表示正值(但是,没有这个数字是正的)

于 2013-07-09T11:05:41.940 回答
2

a=+b与 相同a=0+b,换句话说,a=b

=+不是运算符。它是赋值运算符=,后跟一个正号++应用于右侧的变量,因此您可以将其读取为a= (+b)

于 2013-07-09T11:05:55.447 回答
1

a -= b等价于a = a - b, 并且

a =- b相当于a = - b

于 2013-07-09T11:06:31.050 回答
0

不,两者都不是总和的捷径。您是否尝试过 =+ 来查看它的作用?

提示,尝试使用 =- 来查看它的作用。

于 2013-07-09T11:05:13.257 回答