operator + =和= +之间的差异

时间:2013-07-09 11:03:14

标签: java operator-keyword

你能清楚地解释算子+ =和算子= +之间的区别吗? 显然,两者都是总和的捷径,但我没有得到“= +”

的含义

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=551^2+2^2+3^2+4^2+5^2 = 1+4+9+16+25 = 55) 如果我将result += currentNumber*currentNumber;替换为result =+ currentNumber*currentNumber;,则会得到25而不是55的结果。我想了解原因。

4 个答案:

答案 0 :(得分:7)

=+不是operator。您可能会将其与作业=unary + operator的组合混淆,后者会将该值视为正数(不会更改其符号,+ (-3)仍为-3 })并且可以完全省略整数值。

int a = 5;
int b = 3;

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

a -= b相当于a = a - b

a =- b相当于a = - b

答案 3 :(得分:0)

不,两者都不是总和的捷径。你试过= +看看它做了什么吗?

提示,尝试使用= - 看看它是做什么的。