Java 迴圈結構 – for, while 及 do…while

Java 迴圈結構 - for, while 及 do...while

順序結構的程式語句只能被執行一次。如果您想要同樣的操作執行多次,,就需要使用迴圈結構。

Java中有三種主要的迴圈結構:

  • while 迴圈
  • do…while 迴圈
  • for 迴圈

在Java5中引入了一種主要用於陣列的增強型for迴圈。


while 迴圈

while是最基本的迴圈,它的結構為:

while( 布林表示式 ) { //迴圈內容 }

只要布林表示式為 true,迴圈就會一直執行下去。

例項

Test.java 檔案程式碼:

public class Test { public static void main(String args[]) { int x = 10; while( x < 20 ) { System.out.print("value of x : " + x ); x++; System.out.print("\n"); } } }

以上例項編譯執行結果如下:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

do…while 迴圈

對於 while 語句而言,如果不滿足條件,則不能進入迴圈。但有時候我們需要即使不滿足條件,也至少執行一次。

do…while 迴圈和 while 迴圈相似,不同的是,do…while 迴圈至少會執行一次。

do {
       //程式碼語句
}while(布林表示式);

注意:布林表示式在迴圈體的後面,所以語句塊在檢測布林表示式之前已經執行了。 如果布林表示式的值為 true,則語句塊一直執行,直到布林表示式的值為 false。

例項

Test.java 檔案程式碼:

public class Test { public static void main(String args[]){ int x = 10; do{ System.out.print("value of x : " + x ); x++; System.out.print("\n"); }while( x < 20 ); } }

以上例項編譯執行結果如下:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

for迴圈

雖然所有迴圈結構都可以用 while 或者 do...while表示,但 Java 提供了另一種語句 —— for 迴圈,使一些迴圈結構變得更加簡單。

for迴圈執行的次數是在執行前就確定的。語法格式如下:

for(初始化; 布林表示式; 更新) { //程式碼語句 }

關於 for 迴圈有以下幾點說明:

  • 最先執行初始化步驟。可以宣告一種型別,但可初始化一個或多個迴圈控制變數,也可以是空語句。
  • 然後,檢測布林表示式的值。如果為 true,迴圈體被執行。如果為false,迴圈終止,開始執行迴圈體後面的語句。
  • 執行一次迴圈後,更新迴圈控制變數。
  • 再次檢測布林表示式。迴圈執行上面的過程。

例項

Test.java 檔案程式碼:

public class Test { public static void main(String args[]) { for(int x = 10; x < 20; x = x+1) { System.out.print("value of x : " + x ); System.out.print("\n"); } } }

以上例項編譯執行結果如下:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

Java 增強 for 迴圈

Java5 引入了一種主要用於陣列的增強型 for 迴圈。

Java 增強 for 迴圈語法格式如下:

for(宣告語句 : 表示式) { //程式碼句子 }

宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等。

表示式:表示式是要訪問的陣列名,或者是返回值為陣列的方法。

例項

Test.java 檔案程式碼:

public class Test { public static void main(String args[]){ int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ){ System.out.print( x ); System.out.print(","); } System.out.print("\n"); String [] names ={"James", "Larry", "Tom", "Lacy"}; for( String name : names ) { System.out.print( name ); System.out.print(","); } } }

以上例項編譯執行結果如下:

10,20,30,40,50,
James,Larry,Tom,Lacy,

break 關鍵字

break 主要用在迴圈語句或者 switch 語句中,用來跳出整個語句塊。

break 跳出最裡層的迴圈,並且繼續執行該迴圈下面的語句。

語法

break 的用法很簡單,就是迴圈結構中的一條語句:

break;

例項

Test.java 檔案程式碼:

public class Test { public static void main(String args[]) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { // x 等於 30 時跳出迴圈 if( x == 30 ) { break; } System.out.print( x ); System.out.print("\n"); } } }

以上例項編譯執行結果如下:

10
20

continue 關鍵字

continue 適用於任何迴圈控制結構中。作用是讓程式立刻跳轉到下一次迴圈的迭代。

在 for 迴圈中,continue 語句使程式立即跳轉到更新語句。

在 while 或者 do…while 迴圈中,程式立即跳轉到布林表示式的判斷語句。

語法

continue 就是迴圈體中一條簡單的語句:

continue;

例項

Test.java 檔案程式碼:

public class Test { public static void main(String args[]) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { if( x == 30 ) { continue; } System.out.print( x ); System.out.print("\n"); } } }

以上例項編譯執行結果如下:

10
20
40
50