Java while迴圈語句

只要給定條件為真,Java編程語言中的while迴圈語句就會重複執行目標語句。

語法

while迴圈的語法是 -

while(boolean_expression) {
   // 執行語句
}

這裏,語句可以是單個語句或語句塊。 條件(boolean_expression)可以是任何運算式,true是任何非零值。

執行時,如果boolean_expression結果為true,則執行迴圈內的操作。只要運算式結果為true,它將繼續執行。

當條件變為false時,程式控制將傳遞到緊接迴圈之後的代碼。
While迴圈語句

這裏,while迴圈有一個關鍵點是迴圈可能永遠不會運行。 當測試運算式並且結果為false時,將跳過循環體並且將執行while迴圈之後的第一個語句。

示例1. Java while迴圈
這是一個簡單的java while迴圈示例,用於列印510之間的數字。

//package com.zaixian.javawhileloop;

public class JavaWhileLoop {

    public static void main(String[] args) {

        int i = 5;
        while (i <= 10) {
            System.out.println(i);
            i++;
        }
    }
}

請注意,在迴圈中增加了i的值,否則while迴圈永遠不會終止,因為它變成了無限迴圈。 終止程式在無限迴圈中運行的唯一方法是手動退出它或JVM記憶體不足時。

請注意,如果布爾運算式返回false,則while迴圈內的語句將不會執行。 所以while迴圈中的語句有可能永遠不會執行。

示例2. Java迭代迴圈與迭代器

Java while迴圈在java中經常與迭代器一起使用。 下麵來看一個使用while迴圈迭代ArrayList的簡短示例。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class JavaWhileLoop {
    public static void main(String[] args) {
        List<String> veggies = new ArrayList<>();
        veggies.add("油麥菜");
        veggies.add("紅豆角");
        veggies.add("番茄");

        Iterator<String> it = veggies.iterator();

        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

執行上面示例代碼,得到以下結果 -

油麥菜

紅豆角

番茄

示例3. while無限迴圈示例

有時希望迴圈無限運行。在這種情況下,可以使用while迴圈。 無限運行的一個例子是在特定位置連續查找檔,如果找到則然後處理它。 下麵是java中while迴圈的偽代碼示例。

//package com.zaixian.javawhileloop;

public class WhileTrueJava {

    public static void main(String[] args) {
        while(true) {
            System.out.println("開始處理");
            // 在特定目錄中查找檔

            // 如果找到則處理它,比如將檔資訊插入資料庫
            System.out.println("結束處理");

            //  等待10秒,再繼續處理...
            try {
                Thread.sleep(10*1000);
            } catch (InterruptedException e) {
                System.out.println("Thread Interrupted, exit now");
                System.exit(0);
            }
        }
    }

}

如果運行上面的程式,需要在終端上使用Ctrl + C手動退出程式。 如果使用的是Eclipse,則會有一個紅色按鈕來終止當前正在運行的程式。


上一篇: java中方法重載和方法重寫的區別 下一篇:無