多階層forループ文にて、continueで次の処理へスキップ

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

使い方

for ( カウンタ変数を初期化する式A; 条件式A; カウンタ変数を更新する式A ) {
    条件式Aが「TRUE」の間、繰り返し行う処理
    for ( カウンタ変数を初期化する式B; 条件式B; カウンタ変数を更新する式B ) {
        条件式Bが「TRUE」の間、繰り返し行う処理
        for ( カウンタ変数を初期化する式C; 条件式C; カウンタ変数を更新する式C ) {
            条件式Cが「TRUE」の間、繰り返し行う処理
            continue 2; // 残りの処理をスキップし、条件式Bのループ(繰り返し)の次の処理へ移る
        }
    }
}

サンプル

<?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 ) {
                continue 2;
            }
        }
        echo '</p>';
    }
}
?>

↓↓↓出力結果↓↓↓

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,

スポンサード リンク

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