你能清楚地解释算子+ =和算子= +之间的区别吗? 显然,两者都是总和的捷径,但我没有得到“= +”
的含义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的结果。我想了解原因。
答案 0 :(得分:7)
=+
不是operator。您可能会将其与作业=
和unary +
operator的组合混淆,后者会将该值视为正数(不会更改其符号,+ (-3)
仍为-3
})并且可以完全省略整数值。
int a = 5;
int b = 3;
a = (+b); // a = 3
a = (-b); // a = -3
+一元加运算符;表示正值(但没有这个数字是正数)
答案 1 :(得分:2)
a=+b
与a=0+b
相同,换句话说,a=b
=+
不是运营商。它是赋值运算符=
,后跟一个正号+
。 +
已应用于右侧的变量,因此您可以将其读作a= (+b)
。
答案 2 :(得分:1)
a -= b
相当于a = a - b
和
a =- b
相当于a = - b
答案 3 :(得分:0)
不,两者都不是总和的捷径。你试过= +看看它做了什么吗?
提示,尝试使用= - 看看它是做什么的。