考虑这个简单的代码:
// 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 没有。