多階層forループ文にて、breakでループを終了させる

入れ子(ネスト)で多階層にしたforループ文において、複数の階層のループ(繰り返し)を終了させたいときは、breakの引数に、終了させたい階層数を指定する。

使い方

for ( カウンタ変数を初期化する式A; 条件式A; カウンタ変数を更新する式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>';
    }
}
?>

↓↓↓出力結果↓↓↓

1-1-1, 1-1-2,
2-1-1, 2-1-2,
3-1-1, 3-1-2,

スポンサード リンク

カテゴリー: for, PHP, 制御構造 タグ: パーマリンク