<分区>
我知道这是一个愚蠢的例子,但我确实想知道它是如何工作的。
一般情况下,post-increment 给出旧值,之后给变量加1。
int a = 1;
a = a++;
System.out.println(a);
在第 3 行,它打印出“1”。为什么a保持不变?
据我了解, 在第 2 行,右侧将 1 赋值给变量 a。
后递增“++”将a加1。 不应该是 2 而不是 1 吗?
标签 java
<分区>
我知道这是一个愚蠢的例子,但我确实想知道它是如何工作的。
一般情况下,post-increment 给出旧值,之后给变量加1。
int a = 1;
a = a++;
System.out.println(a);
在第 3 行,它打印出“1”。为什么a保持不变?
据我了解, 在第 2 行,右侧将 1 赋值给变量 a。
后递增“++”将a加1。 不应该是 2 而不是 1 吗?
最佳答案
你可以这样想 a = a++;
(在 Java 中):
int tmp = a;
a = a + 1;
a = tmp;
首先 a
的值被读取,然后 a
递增,然后 a
被赋值您首先阅读的值(value)。这是因为表达式 a++
在增量之前采用 a
的值。然后,表达式 a = ____
发生,将您在 a++
期间获得的值分配给 a
。
关于java - java中后增量的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319282/