只要給定條件為真,Java程式設計語言中的while
迴圈語句就會重複執行目標語句。
語法
while
迴圈的語法是 -
while(boolean_expression) {
// 執行語句
}
這裡,語句可以是單個語句或語句塊。 條件(boolean_expression
)可以是任何表示式,true
是任何非零值。
執行時,如果boolean_expression
結果為true
,則執行迴圈內的操作。只要表示式結果為true
,它將繼續執行。
當條件變為false
時,程式控制將傳遞到緊接迴圈之後的程式碼。
這裡,while
迴圈有一個關鍵點是迴圈可能永遠不會執行。 當測試表示式並且結果為false
時,將跳過迴圈體並且將執行while
迴圈之後的第一個語句。
範例1. Java while迴圈
這是一個簡單的java while迴圈範例,用於列印5
到10
之間的數位。
//package com.yiibai.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.yiibai.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,則會有一個紅色按鈕來終止當前正在執行的程式。