java - 运算符 += 和 =+ 的区别

标签 java operator-keyword

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

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。我想了解原因。

最佳答案

=+ 不是 operator .您可能会将它与赋值 =unary + operator 的组合混淆,它将取值为正(不改变其符号,+ (-3) 仍然是 -3)并且可以完全省略整数值。

int a = 5;
int b = 3;

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

+ Unary plus operator; indicates positive value (numbers are positive without this, however)

关于java - 运算符 += 和 =+ 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546584/

相关文章:

java - 使用 JPA 在浏览器存储中持久保存第 3 方实体

java - 如何使用 webdriver 和 java 查找日历表中的链接?

java - 字节数据类型的默认格式

java - 在运行时确定可用的运算符

c# - 对方法返回值使用 C# 丢弃运算符是否有意义?

c - -> 结构体中的运算符

java - Maven 在 Java 7 项目中提示 "use -source 7 or higher to enable diamond operator"

java - 使用 OWL API 加载 YAGO 本体

c++ - 是否可以将重载的提取运算符与重载的算术运算符级联?

c++ - 将表示为链表的两个大数相乘