我知道这是一个愚蠢的例子,但我确实想知道它是如何运作的 通常,后增量给出旧值,并在变量后添加1。
int a = 1;
a = a++;
System.out.println(a);
在第3行,它打印出" 1"。为什么保持不变?
据我了解, 在第2行,右侧为变量a分配1。
后增量" ++"将1加1。 难道不是2而不是1吗?
答案 0 :(得分:5)
你可以这样想到a = a++;
(在Java中):
int tmp = a;
a = a + 1;
a = tmp;
首先读取a
的值,然后递增a
,然后为a
分配您首先读取的值。这是因为表达式a++
在增量之前取a
的值。然后,表达式a = ____
发生,将您在a++
期间获得的值分配给a
。
答案 1 :(得分:3)
使用a
的预增量值,在增量之后发生
那是因为后期增量的事件序列是:
第二步的效果被以下任务覆盖,当然,按照第一步使用矿石增量值