2011-02-23 262 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”对于数字类型不是操作,而是对其他类型对象的编译时错误(例如,不能将其与字符串一起使用)。它主要提供,因此您可以在需要时使用领先的+符号编写数字。这从来没有必要,但它可以在某些情况下提高可读性。

相关问题