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

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

ラベルを指定しない場合、break文がある階層のループ(繰り返し)だけを終了させる。

構文

ラベル指定あり

break ラベル;

指定したラベルがある階層のひとつ下の階層のループ(繰り返し)を終了させる。指定したラベルがある階層のループ(繰り返し)の次の処理へ移る。ラベルがループ外にある場合は、全階層のループを抜ける。

for ( カウンタ変数を初期化する式A; 条件式A; カウンタ変数を更新する式A ) {
    条件式Aが「TRUE」の間、繰り返し行う処理
    ラベル:
    for ( カウンタ変数を初期化する式B; 条件式B; カウンタ変数を更新する式B ) {
        条件式Bが「TRUE」の間、繰り返し行う処理
        for ( カウンタ変数を初期化する式C; 条件式C; カウンタ変数を更新する式C ) {
            条件式Cが「TRUE」の間、繰り返し行う処理
            break ラベル; // 条件式Bの階層までのループ(繰り返し)を終了させ、条件式Aのループ(繰り返し)の次の処理へ移る
        }
    }
}

ラベル指定なし

break;

break文がある階層のループ(繰り返し)だけを終了させる。

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

サンプル

ラベル指定あり

<script type="text/javascript">
for ( var counterVarA = 1; counterVarA <= 3; counterVarA++ ) {
    labelA:
    for ( var counterVarB = 1; counterVarB <= 3; counterVarB++ ) {
        for ( var counterVarC = 1; counterVarC <= 3; counterVarC++ ) {
            document . write( counterVarA + '-' );
            document . write( counterVarB + '-' );
            document . write( counterVarC + ', ' );
            if ( counterVarC >= 2 ) {
                document . write( '<br />' );
                break labelA;
            }
        }
        document . write( '<br />' );
    }
}
</script>

↓↓↓出力結果↓↓↓

ラベル指定なし

<script type="text/javascript">
for ( var counterVarA = 1; counterVarA <= 3; counterVarA++ ) {
    for ( var counterVarB = 1; counterVarB <= 3; counterVarB++ ) {
        for ( var counterVarC = 1; counterVarC <= 3; counterVarC++ ) {
            document . write( counterVarA + '-' );
            document . write( counterVarB + '-' );
            document . write( counterVarC + ', ' );
            if ( counterVarC >= 2 ) {
                break;
            }
        }
        document . write( '<br />' );
    }
}
</script>

↓↓↓出力結果↓↓↓

スポンサード リンク

カテゴリー: for, JavaScript, リファレンス, 制御構造 タグ: パーマリンク