多階層制御構造の複数の階層のループ処理をcontinueでスキップ

ループ(繰り返し)の制御構造(制御構文)において、複数の階層のループ(繰り返し)処理をスキップさせたいときは、continueの引数に、スキップさせたい階層数を指定する。

continue文は、 forforeachwhiledo-while などのループ(繰り返し)の制御構造(制御構文)で使用する。

サンプル

for

詳細については、多階層for文の複数の階層のループ処理をcontinueでスキップさせるのページへ。

<?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,

foreach

詳細については、多階層foreach文の複数の階層のループ処理をcontinueでスキップのページへ。

<?php
$varArrayA = array(
    array(
        "red" => "レッド",
        "blue" => "ブルー",
        "yellow" => "イエロー"
    ),
    array(
        "aka" => "赤色",
        "ao" => "青色",
        "ki" => "黄色"
    )
);
foreach ( $varArrayA as $varValueA ) {
    foreach ( $varValueA as $varValueB ) {
        echo '<p>' . $varValueB . '</p>';
        if ( $varValueB == 'ブルー' ) {
            continue 2;
        }
    }
}
?>

↓↓↓出力結果↓↓↓

レッド
ブルー
赤色
青色
黄色

while

詳細については、多階層while文の複数の階層のループ処理をcontinueでスキップさせるのページへ。

<?php
$varA = 1;
while ( $varA <= 3 ) {
    echo '<p>$varA: ';
    echo $varA++;
    echo '</p>';
    $varB = 1;
    while ( $varB < $varA ) {
        echo '<p>  $varB: ';
        echo $varB++;
        echo '</p>';
        echo '<p>    $varC: ';
        $varC = 1;
        while ( $varC < $varB ) {
            echo $varC++ . ',';
            if ( $varC > 2 ) {
                echo '</p>';
                continue 2;
            }
        }
        echo '</p>';
    }
}
?>

↓↓↓出力結果↓↓↓

$varA: 1
  $varB: 1
    $varC: 1,
$varA: 2
  $varB: 1
    $varC: 1,
  $varB: 2
    $varC: 1,2,
$varA: 3
  $varB: 1
    $varC: 1,
  $varB: 2
    $varC: 1,2,
  $varB: 3
    $varC: 1,2,

do-while

詳細については、多階層do-while文の複数の階層のループ処理をcontinueでスキップのページへ。

<?php
$varA = 1;
do {
    echo '<p>$varA: ';
    echo $varA++;
    echo '</p>';
    $varB = 1;
    do {
        echo '<p>  $varB: ';
        echo $varB++;
        echo '</p>';
        echo '<p>    $varC: ';
        $varC = 1;
        do {
            echo $varC++ . ',';
            if ( $varC > 2 ) {
                echo '</p>';
                continue 2;
            }
        } while ( $varC < $varB );
        echo '</p>';
    } while ( $varB < $varA );
} while ( $varA <= 3 );
?>

↓↓↓出力結果↓↓↓

$varA: 1
  $varB: 1
    $varC: 1,
$varA: 2
  $varB: 1
    $varC: 1,
  $varB: 2
    $varC: 1,2,
$varA: 3
  $varB: 1
    $varC: 1,
  $varB: 2
    $varC: 1,2,
  $varB: 3
    $varC: 1,2,

スポンサード リンク

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