a + = b和a = + b之间有什么区别,也是a ++和++ a?
正如我在标题中提到的,
a + = b和a = + b之间有什么区别,也是a ++和++ a? 我有点困惑
a += b
相当于a = a + b
a = +b
相当于a = b
a++
和++a
都a
++a
递增1.不同之处在于a++
返回a
之前的值,而++a
返回递增之后的值。
那是:
a = 10; b = ++a; //a = 11, b = 11 a = 10; b = a++; //a = 11, b = 10
a += b
相当于a = a + b
a = +b
相当于a = b
a++
是后缀增量 , ++a
是前缀增量 。 它们在独立语句中使用时没有区别,但是它们的评估结果不同: a++
返回增量前的值,而++a
后面的值 。 即
int a = 1; int b = a++; // result: b == 1, a == 2 int c = ++a; // result: c == 3, a == 3
a + = b ========> a = a + b
a = + b ========> a = b
++ a将增加variables并返回增加的值。
一个++会递增variables,但在递增之前返回值。
其他人已经涵盖了你的大部分问题的答案。 但是,他们对你的第二个例子有点遗憾。
a = +b
将a = +b
的值赋给a
。 对于数字types,“unary plus”是一个无操作,但对其他types的对象(例如,不能与string一起使用)的编译时错误。 它主要提供,所以你可以写一个带有“ +
符号的数字。 这是不必要的,但在某些情况下可以提高可读性。
Java运算符
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 ++首先读取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 += b
和a = +b
,@彼得·特罗克已经清楚地回答过了。
你可以在这里find差异有你提到的所有案例的例子!