谁能解释一下为什么会这样
int i=0;
i=i++;
i=i++;
i=i++;
System.out.println(i);
它打印出零。
最佳答案
i++
是后增量 ( JLS 15.14.2 )。它递增 i
,但表达式的结果是递增 之前的 i
的值。将此值分配回 i
实际上会保持 i
的值不变。
像这样分解:
int i = 0;
int j = i++;
在这种情况下很容易看出为什么 j == 0
。现在,我们将左侧替换为 i
,而不是 j
。右侧的值仍然是 0
,这就是您在代码段中得到 i == 0
的原因。
关于java - 无法在 Java 中完成这项任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377145/