入れ子(ネスト)で多階層にしたfor文において、現在の階層のループ(繰り返し)処理を終了させたいときは、break文を使う。
構文
for ( カウンタ変数を初期化する式A; 条件式A; カウンタ変数を更新する式A ) {
条件式Aが「true」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式B; 条件式B; カウンタ変数を更新する式B ) {
条件式Bが「true」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式C; 条件式C; カウンタ変数を更新する式C ) {
条件式Cが「true」の間、繰り返し行う処理
break; // 現在の階層のループ(繰り返し)処理を終了させ、条件式Bのループ(繰り返し)処理へ移る
}
}
}
条件式Aが「true」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式B; 条件式B; カウンタ変数を更新する式B ) {
条件式Bが「true」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式C; 条件式C; カウンタ変数を更新する式C ) {
条件式Cが「true」の間、繰り返し行う処理
break; // 現在の階層のループ(繰り返し)処理を終了させ、条件式Bのループ(繰り返し)処理へ移る
}
}
}
サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package samplePackage; public class SampleClass { public static void main( String[] args ){ for ( int $varA = 1; $varA <= 3; $varA++ ) { for ( int $varB = 1; $varB <= 3; $varB++ ) { for ( int $varC = 1; $varC <= 3; $varC++ ) { System.out.println( $varA + "-" + $varB + "-" + $varC ); if ( $varC == 2 ) { break; } } } } } } |
実行結果
1-1-1
1-1-2
1-2-1
1-2-2
1-3-1
1-3-2
2-1-1
2-1-2
2-2-1
2-2-2
2-3-1
2-3-2
3-1-1
3-1-2
3-2-1
3-2-2
3-3-1
3-3-2
1-1-2
1-2-1
1-2-2
1-3-1
1-3-2
2-1-1
2-1-2
2-2-1
2-2-2
2-3-1
2-3-2
3-1-1
3-1-2
3-2-1
3-2-2
3-3-1
3-3-2
入れ子(ネスト)で多階層にしたfor文の実行結果と違い「$varC」が「3」のときの出力がない点に注目。