2011-02-23 323 views

回答

23

a += b相當於a = a + b

a = +b相當於a = b

a++++a兩個增量a由1 不同的是,a++回報a值增量而++a返回的值之前增量後。

即:

a = 10; 
b = ++a; //a = 11, b = 11 

a = 10; 
b = a++; //a = 11, b = 10 
-1

你可以找到差異here有你提到的所有情況的例子!

16

a += b相當於a = a + b

a = +b相當於a = b

a++後綴增量++a前綴增量。它們在獨立語句中使用時沒有差異,但它們的評估結果不同:a++返回值a之前遞增,而++a之後。即

int a = 1; 
int b = a++; // result: b == 1, a == 2 
int c = ++a; // result: c == 3, a == 3 
2
a += b <=> a = a + b 
a =+ b <=> a = b 
a++ // post increment, means the value gets used, and after that, a is incremented by one 
++a //pre increment, a is incremented by one before the value is used 
3

Java operators

a += b; // a = a + b 
a = +b; // a = b 
a++;  // a = a + 1 (returning a if used inside some expression) 
++a;  // a = a + 1 (returning a + 1 if used inside some expression) 
4

一個+ = B ======> A = A + B

A = + B ======= => a = b

++ a將遞增變量並返回遞增的值。

a ++將遞增變量,但在遞增之前返回該值。

+1

那麼,a = + b是無用的? – 2011-02-23 23:01:31

2

a ++首先讀取a的值,然後遞增其值。 ++首先增加值然後讀取它。您可以輕鬆看到打印它們的差異。

int a = 4; 
System.out.println(a++); // prints 4, after printing, a == 5 
System.out.println(++a); // first increments a, then reads its value (6), and that's what got printed. 

a += ba = +b,@彼得Török顯然已經回答過了。

4

其他人已經覆蓋了答案,大部分的問題。但是,他們對你的第二個例子缺少一些想法。

a = +b+b的值賦值爲a。「unary plus」對於數字類型不是操作,而是對其他類型對象的編譯時錯誤(例如,不能將其與字符串一起使用)。它主要提供,因此您可以在需要時使用領先的+符號編寫數字。這從來沒有必要,但它可以在某些情況下提高可讀性。

相關問題