java - 这个 while(true) 循环如何退出?

标签 java while-loop

package hi;

import java.util.Scanner;

class hi {

    /**
     * www.instanceofjava.com
     */
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.println("Enter a binary number: ");

        int binarynum = in.nextInt();
        int binary = binarynum;

        int decimal = 0;
        int power = 0;

        while (true) {

            if (binary == 0) {

                break;

            } else {

                int tmp = binary % 10;
                decimal += tmp * Math.pow(2, power);
                binary = binary / 10;
                power++;

            }
        }
        System.out.println("while is false");
        System.out.println("Binary=" + binary + " Decimal=" + decimal);

    }
}

我无法理解 while 循环是如何结束的。 while中的条件什么时候会变成false

最佳答案

退出循环有两种方法:

  1. 通过循环头中的条件计算结果为 false。

  2. 使用分支语句,特别是使用 breakreturn

在您的情况下,循环头部的条件始终为true,因此这永远不会导致循环退出。

但是,您有一个 break 语句,该语句在 binary == 0 计算结果为 true 时立即执行。 break 将退出循环。

您可能想阅读 branch statements .

关于java - 这个 while(true) 循环如何退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035805/

相关文章:

php - 如何在没有 FETCHALL 的情况下在 MYSQL PDO 中获取 2 次

python - Python 类属性上的 While 循环

java - 如何正确处理并发?

java - 使用 JPanel 和 JLabel 手动创建 JTabbedPane 的选项卡标题

java - 为什么这个 List<> 抛出 NullPointerException?

Python while 和 for 循环 - 我可以使代码更高效吗?

java - 非常规使用 Iterator 迭代集合

JavaFX 将事件监听器附加到黑色圆圈

java - 如何在 Java 中实现抽象单例类?

c - 为什么我的提示第一次重复两次?