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

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

ラベルを指定しない場合、continue文がある階層のループ(繰り返し)の次の処理へ移る。

構文

ラベル指定あり

continue ラベル;

指定したラベルがある階層のひとつ下の階層のループ(繰り返し)の次の処理へ移る。

do {
    条件式Aが「TRUE」の間、繰り返し行う処理
    ラベル:
    do {
        条件式Bが「TRUE」の間、繰り返し行う処理
        do {
            条件式Cが「TRUE」の間、繰り返し行う処理
            continue ラベル; // 残りの処理をスキップし、条件式Bのループ(繰り返し)の次の処理へ移る
        } while ( 条件式C );
    } while ( 条件式B );
} while ( 条件式A );

ラベル指定なし

continue;

continue文がある階層のループ(繰り返し)の次の処理へ移る。

do {
    条件式Aが「TRUE」の間、繰り返し行う処理
    do {
        条件式Bが「TRUE」の間、繰り返し行う処理
        do {
            条件式Cが「TRUE」の間、繰り返し行う処理
            continue; // 残りの処理をスキップし、条件式Cのループ(繰り返し)の次の処理へ移る
        } while ( 条件式C );
    } while ( 条件式B );
} while ( 条件式A );

サンプル

<script type="text/javascript">
var varA = 1;
do {
    document . write( '<p>varA: ' );
    document . write( varA++ );
    document . write( '</p>' );
    var varB = 1;
    labelA:
    do {
        document . write( '<p>  varB: ' );
        document . write( varB++ );
        document . write( '</p>' );
        document . write( '<p>    varC: ' );
        var varC = 1;
        do {
            document . write( varC++ + ',' );
            if ( varC > 2 ) {
                document . write( '</p>' );
                continue labelA;
            }
        } while ( varC < varB );
        document . write( '</p>' );
    } while ( varB < varA );
} while ( varA <= 5 );
</script>

↓↓↓出力結果↓↓↓

スポンサード リンク

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