Java ループ構造 - for、while、および do...while

順次構造のプログラム文は一度しか実行できません。

同じ操作を複数回実行したい場合は、ループ構造を使用する必要があります。

Java には主に3つのループ構造があります:

  • 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 文の場合、条件を満たさないとループに入ることができません。しかし、条件を満たさなくても少なくとも1回は実行したい場合があります。

do...while ループは while ループに似ていますが、do...while ループは少なくとも1回は実行される点が異なります。

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 ループに関する説明は次のとおりです:

  • 最初に初期化ステップが実行されます。型を宣言でき、1つ以上のループ制御変数を初期化できます。また、空文にすることもできます。
  • 次に、ブール式の値をチェックします。true の場合、ループ本体が実行されます。false の場合、ループは終了し、ループ本体の後の文を実行し始めます。
  • ループを1回実行した後、ループ制御変数を更新します。
  • 再びブール式をチェックします。ループは上記のプロセスを繰り返し実行します。

例

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 の使い方は非常に簡単で、ループ構造内の1つの文です:

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 はループ本体の単純な1つの文です:

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
その他の拡張