簡體   English   中英

while(true)循環如何退出?

[英]How does this while(true) loop ever exit?

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將退出循環。

您可能需要閱讀分支語句

在每次迭代中,您都將二進制數除以10來減少二進制數。 因此,最終在某些迭代之后,binary的值變為0 因為,您在每次迭代的開始都使用條件:

if (binary == 0) {

    break;

}

由於其中包含break語句,因此此處的循環終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM