while(true)循环如何退出?

时间:2018-08-27 08:58:05

标签: 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

2 个答案:

答案 0 :(得分:2)

有两种退出循环的方法:

  1. 通过循环头部的条件求值为假。

  2. 带有分支语句,尤其是breakreturn

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

但是,您有一条break语句,一旦binary == 0评估为true,该语句就会执行。 break将退出循环。

您可能想阅读branch statements

答案 1 :(得分:0)

在每次迭代中,您都将二进制数除以10来减少二进制数。因此,最终在某些迭代之后,二进制值变为0。因为,您在每次迭代的开始都使用条件:

if (binary == 0) {

    break;

}

这里的循环由于其中的break语句而终止。