入れ子(ネスト)で多階層にしたforループ文において、複数の階層のループ(繰り返し)を終了させたいときは、breakの引数に、終了させたい階層数を指定する。
使い方
for ( カウンタ変数を初期化する式A; 条件式A; カウンタ変数を更新する式A ) {
条件式Aが「TRUE」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式B; 条件式B; カウンタ変数を更新する式B ) {
条件式Bが「TRUE」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式C; 条件式C; カウンタ変数を更新する式C ) {
条件式Cが「TRUE」の間、繰り返し行う処理
break 2; // 条件式Bの階層までのループ(繰り返し)を終了させ、条件式Aのループ(繰り返し)の次の処理へ移る
}
}
}
条件式Aが「TRUE」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式B; 条件式B; カウンタ変数を更新する式B ) {
条件式Bが「TRUE」の間、繰り返し行う処理
for ( カウンタ変数を初期化する式C; 条件式C; カウンタ変数を更新する式C ) {
条件式Cが「TRUE」の間、繰り返し行う処理
break 2; // 条件式Bの階層までのループ(繰り返し)を終了させ、条件式Aのループ(繰り返し)の次の処理へ移る
}
}
}
サンプル
<?php
for ( $varA = 1; $varA <= 3; $varA++ ) {
for ( $varB = 1; $varB <= 3; $varB++ ) {
echo '<p>';
for ( $varC = 1; $varC <= 3; $varC++ ) {
echo $varA . '-';
echo $varB . '-';
echo $varC . ', ';
if ( $varC >= 2 ) {
break 2;
}
}
echo '</p>';
}
}
?>
for ( $varA = 1; $varA <= 3; $varA++ ) {
for ( $varB = 1; $varB <= 3; $varB++ ) {
echo '<p>';
for ( $varC = 1; $varC <= 3; $varC++ ) {
echo $varA . '-';
echo $varB . '-';
echo $varC . ', ';
if ( $varC >= 2 ) {
break 2;
}
}
echo '</p>';
}
}
?>
↓↓↓出力結果↓↓↓
1-1-1, 1-1-2,
2-1-1, 2-1-2,
3-1-1, 3-1-2,
2-1-1, 2-1-2,
3-1-1, 3-1-2,