JavaScriptのbreak文について
JavaScriptでは、繰り返し処理を途中で終了したい場合があります。例えば、特定の条件を満たした時点でループを抜け出したい場合などです。このような場合に役立つのがbreak
文です。
break文の基本的な使い方
break
文は、for
ループやwhile
ループなどの繰り返し処理の中で使用されます。break
文が実行されると、ループ処理が直ちに終了し、ループの次の処理に制御が移ります。
以下は、for
ループでbreak
文を使用する例です。
<script>
for (let i = 1; i <= 10; i++) {
if (i === 5) {
break; // iが5になったらループを終了
}
console.log(i); // コンソールにiを表示
}
</script>
このコードでは、i
が5になった時点でbreak
文が実行され、ループが終了します。そのため、コンソールには1から4までの数字のみが出力されます。
多重ループにおけるbreak文
break
文は、多重ループの中でも使用できます。ただし、break
文は、それが記述されている最も内側のループのみを終了します。外側のループはそのまま処理が継続されます。
以下の例では、外側のループと内側のループの両方でbreak
文を使用しています。
<script>
for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
if (i === 2 && j === 2) {
break; // iが2、jが2になったら内側のループを終了
}
console.log("i: " + i + ", j: " + j);
}
}
</script>
このコードでは、i
が2、j
が2になった時点で内側のループが終了します。しかし、外側のループは継続されるため、i
が3の場合の処理も行われます。
switch文におけるbreak文
break
文は、switch
文の中でも使用されます。switch
文では、break
文がないと、条件が一致したcase
文だけでなく、その後のcase
文も実行されてしまいます(フォールスルー)。
以下の例では、break
文がないため、case 1
の処理の後、case 2
の処理も実行されています。
<script>
let day = 1;
switch (day) {
case 1:
console.log("今日は月曜日です");
case 2:
console.log("今日は火曜日です");
break;
default:
console.log("今日はその他の曜日です");
}
</script>
このコードでは、"今日は月曜日です"と"今日は火曜日です"の両方が出力されます。これは、case 1
の処理の後、break
文がないため、case 2
の処理も実行されてしまうためです。
case
文ごとに処理を区切りたい場合は、break
文を記述する必要があります。
<script>
let day = 1;
switch (day) {
case 1:
console.log("今日は月曜日です");
break; // case 1の処理後、switch文を抜ける
case 2:
console.log("今日は火曜日です");
break; // case 2の処理後、switch文を抜ける
default:
console.log("今日はその他の曜日です");
}
</script>
このコードでは、case 1
の処理の後、break
文があるため、case 2
の処理は実行されません。"今日は月曜日です"のみが出力されます。
break文を使用する際の注意点
break
文は、ループ処理を途中で終了させる便利な機能ですが、多用しすぎるとコードが読みにくくなる可能性があります。break
文を使用する場合は、本当に必要な場合にのみ使用し、コードの可読性を損なわないように注意しましょう。
参考資料
よくある質問
質問 | 回答 |
---|---|
break文はif文の中でも使えますか? | いいえ、break 文は、for ループ、while ループ、switch 文の中だけで使用できます。if 文の中で使用することはできません。 |
break文を使わずにループを途中で終了することはできますか? | はい、ループの条件式を操作することで、break 文を使わずにループを途中で終了することができます。しかし、break 文を使った方がコードが簡潔で見やすくなる場合が多いため、基本的にはbreak 文を使うことをおすすめします。 |
break文とcontinue文の違いは何ですか? | break 文はループ処理を完全に終了しますが、continue 文は現在のループ処理をスキップして、次のループ処理に進むという点が異なります。 |