多階層制御構造(制御構文)の複数の階層の処理をbreakで終了させる

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

forforeachwhiledo-whileswitch などの制御構造(制御構文)で使用する。

サンプル

for

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

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

foreach

詳細については、多階層foreach文の複数の階層のループ処理をbreakで終了させるのページへ。

<?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 == 'ブルー' ) {
            break 2;
        }
    }
}
?>

↓↓↓出力結果↓↓↓

レッド
ブルー

while

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

<?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>';
                break 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,

do-while

詳細については、多階層do-while文の複数の階層のループ処理をbreakで終了させるのページへ。

<?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>';
                break 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,

switch

<?php
$varA = 'サッカー';
$varB = '大好き';
switch ( $varA ) {
    case 'サッカー':
    case '野球':
    case 'テニス':
        echo '<p>スポーツは楽しいよね。</p>';
        switch ( $varB ) {
            case '大好き':
                echo '<p>私も大好きです。</p>';
                break 2;
            case '好き':
                echo '<p>私は大好きです。</p>';
                break 2;
        }
        break;
    case 'ピアノ':
    case 'ギター':
    case 'バイオリン':
        echo '<p>音楽は楽しいよね。</p>';
        break;
}
?>

↓↓↓出力結果↓↓↓

スポーツは楽しいよね。
私も大好きです。

スポンサード リンク

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