What is the difference between a += b and a =+ b , also a++ and ++a?
As I mentioned in the开发者_运维技巧 title,
What is the difference between a += b and a =+ b , also a++ and ++a ? I'm little confused
a += b is equivalent to a = a + b
a = +b is equivalent to a = b
a++ and ++a both increment a by 1.
The difference is that a++ returns the value of a before the increment whereas ++a returns the value after the increment.
That is:
a = 10;
b = ++a; //a = 11, b = 11
a = 10;
b = a++; //a = 11, b = 10
a += b is equivalent to a = a + b
a = +b is equivalent to a = b
a++ is postfix increment and ++a is prefix increment. They do not differ when used in a standalone statement, however their evaluation result differs: a++ returns the value of a before incrementing, while ++a after. I.e.
int a = 1;
int b = a++; // result: b == 1, a == 2
int c = ++a; // result: c == 3, a == 3
Others have covered the answers to most of your questions. However, they are missing a bit about your second example.
a = +b assigns the value of +b to a. The "unary plus" is a no-operation for numeric types, but a compile-time error on other types of objects (for example, you can't use it with a string). It is provided mainly so you can write numbers with a leading + sign when you want to. This is never necessary, but it can improve readability in some circumstances.
a+=b ========> a=a+b
a=+b ========> a=b
++a will increment the variable and return the incremented value.
a++ will increment the variable but return the value before it was incremented.
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)
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
a++ first reads the value of a and then increments its value. ++a first increments the value and then reads it. You can see easily the difference printing them.
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.
for a += b and a = +b, @Péter Török has answered clearly before.
a += b;is equivalent toa = a + b;.a =+ b;is equivalent toa = +b;. This means+b(positive) is assigned to variablea.a++is post increment of variablea, meaning the value of the variable is used before incrementing by1.++ais pre-increment of variablea, meaning the value of the variable is incremented by1and used after increment.
You can find the difference here There are examples for all the cases you mention!
加载中,请稍侯......
精彩评论