【发布时间】:2026-02-24 13:35:01
【问题描述】:
考虑这个简单的代码:
// E1
public void doTest(String pattern) {
int counter = 0;
while (counter < 3) {
counter = counter++;
}
System.out.println("Done");
}
这会导致无限循环。
但是,如果增加计数器的语句是这样写的:
E2. counter = ++counter;
或者这个
E3. counter++;
它正常终止。我知道递增发生在失败的版本中的分配之后,这解释了 E2 的工作原理,但我认为 java 分配了变量中递增的结果,该变量在 E3 中递增。所以我很困惑为什么 E1 失败但 E3 没有。
【问题讨论】:
-
你知道如何使用调试器吗?这是一个很棒的工具,可以帮助你理解这样的代码是如何工作的。
标签: java post-increment