2013-07-09 68 views
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=551^2+2^2+3^2+4^2+5^2 = 1+4+9+16+25 = 55) 如果我用result =+ currentNumber*currentNumber;替换result += currentNumber*currentNumber;,我得到的结果是25而不是55.我想明白为什么。

+0

有作为一个'= + B'没有这样的事情。你是不是指'a = ++ b'? –

+0

你能分享一下对这个= +的引用吗? – David

+0

上周我们不是这样吗? –

回答

0

不,两者都不是捷径。你有没有试过= +看看它做了什么?

提示,尝试使用= - 看看有什么。

7

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

int a = 5; 
int b = 3; 

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

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

2

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

=+不是操作符。它是转让运营商=,后面是正号++适用于右侧的变量,因此您可以将其读取为a= (+b)

+0

好的。现在明白了 !谢谢 – user2541597

+0

@ user2541597很高兴为您提供帮助。你不妨接受答案。 – nakosspy

1

a -= b相当于a = a - b,和

a =- b相当于a = - b