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

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?


慕仙森
浏览 573回答 2
2回答

繁星淼淼

在每次迭代中,您都通过将二进制数除以 来减少二进制数10。因此,最终经过某些迭代后, binary 的值变为0。因为,您在每次迭代开始时都使用条件:if (binary == 0) {    break;}此处的循环因其中的break语句而终止。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java