java - 为什么这段代码会进入无限循环?

标签 java loops while-loop

考虑以下代码:

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/

相关文章:

java - 空指针访问: The variable b can only be null at this location

php - 插入数据问题。在 php 循环中

c++ - C++ While语句不适用于字符串和 “or”

java - 省略数字方法错误

对于某些用户来说,Java Applet 启动速度非常慢?

java - cardview :)? 内的灰线

loops - 每个循环的 SCSS 具有带十进制值的多个变量

c - 如何获取输入提示用户输入两个字符并使用它们进行交换?

c# - 我怎样才能继续上循环

java - 从 Java 字符串中获取数据