JavaScript 入門 | 制御文 (control flow statements) | その他の制御文

ループの制御

一般的に、式の検査によってループに入ると、次の式を検査するまでループ内のすべての文を実行する。
しかし continue 文と break 文は、このような一般的なループの流れをユーザーが直接制御できるようにする。
label 文を使用すると、continue 文と break 文の動作によって、プログラムの流れを特定の領域へ移動できる。

label 文

label 文は、プログラム内の特定の領域を識別できるようにする識別子である。 label 文を使用すると、continue 文と break 文の動作によって、プログラムの流れを特定の領域へ移動できる。

label 文の構文は次のとおりである。

label:
識別したい特定の領域

次の例で、ラベルである arrIndex は、その後に続く for 文全体を指す識別子として使用されている。

arrIndex:
for (var i in arr) {
    document.write(i);
}

continue 文

continue 文はループ内で使用し、そのループの残りの部分をスキップして、すぐ次の式の判定へ進ませる。
通常、繰り返し文の中で特定条件の処理を除外したいときによく使用される。

JavaScript で continue 文は、次の 2 つの形式で使用できる。

構文

1. continue;
2. continue ラベル名;

次の例は、1 から 100 までの整数のうち、3 の倍数を除いて出力する例である。

var exceptNum = 3;
for (var i = 0; i <= 100; i++) {
    if (i % exceptNum == 0) // exceptNum の倍数は出力しない。
        continue;
    document.write(i + " ");
}

次の例は、ラベルを利用して九九の値が奇数の場合だけ出力する例である。

gugudan:
for (var i = 2; i <= 9; i++) {
    dan:
    for (var j = 1; j <= 9; j++) {
        if ((i*j) % 2 == 0)
            continue dan;
        document.write(i + " * " + j + " = " + (i*j) + "<br>");
    }
}

break 文

break 文はループ内で使用し、その繰り返し文を完全に終了させ、繰り返し文の直後にある文へプログラムの流れを移動させる。 つまり、ループ内で式の判定結果に関係なく、繰り返し文から完全に抜けたいときに使用する。

JavaScript で break 文は、次の 2 つの形式で使用できる。

構文

1. break;
2. break ラベル名;

次の例は、配列から特定の値を持つインデックスを出力する例である。

var lectures = ["html", "css", "JavaScript", "php"];
var topic = "JavaScript";
for (var i = 0; i < lectures.length; i++) {
    if (lectures[i] == topic) {
        document.write(topic + " 科目は " + (i + 1) + " 番目の科目である。");
        break; // 目的の値を見つけた後は、これ以上 for 文を繰り返さずに抜ける。
    }
}

次の例は、ラベルを利用して九九を 3 の段までだけ出力する例である。

gugudan:
for (var i = 2; i <= 9; i++) {
    dan:
    for (var j = 1; j <= 9; j++) {
        if (i > 3)
            break gugudan;
        document.write(i + " * " + j + " = " + (i*j) + "<br>");
    }
}