考虑以下代码:
public class Game {
public static void main(String[] args) {
int x = 0;
while (x < 1) {
x = x++;
}
}
}
在我的编译器中,这段代码会进入无限循环,但为什么呢?
首先,我们将值设置为 x
进入x
,并且仅然后我们将 1 添加到 x
,然后我预计 1 < 1
将是 false ,并且 while 循环将终止...
但是不,这不会发生。
那么无限循环的原因可能是什么?
最佳答案
表达式x++
是后增量,这意味着表达式的值是旧值0
,然后将其分配回 x
,因此在 x = x++;
之后,x
始终为 0
。
要跳出无限循环,请不要将其分配回x
,保留x
的后增量值,1
,完好无损:
while (x < 1) {
x++;
}
关于java - 为什么这段代码会进入无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296593/