java中后增量的行为

时间:2014-10-11 21:07:33

标签: java

我知道这是一个愚蠢的例子,但我确实想知道它是如何运作的 通常,后增量给出旧值,并在变量后添加1。

int a = 1;
a = a++;
System.out.println(a);

在第3行,它打印出" 1"。为什么保持不变?

据我了解, 在第2行,右侧为变量a分配1。

后增量" ++"将1加1。 难道不是2而不是1吗?

2 个答案:

答案 0 :(得分:5)

你可以这样想到a = a++;(在Java中):

int tmp = a;
a = a + 1;
a = tmp;

首先读取a的值,然后递增a,然后为a分配您首先读取的值。这是因为表达式a++在增量之前取a 的值。然后,表达式a = ____发生,将您在a++期间获得的值分配给a

答案 1 :(得分:3)

使用a的预增量值,在增量之后发生

那是因为后期增量的事件序列是:

  • 使用变量的当前值
  • 立即增加变量(在任何其他操作之前)

第二步的效果被以下任务覆盖,当然,按照第一步使用矿石增量值