![]()
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文は現在のループ処理をスキップして、次のループ処理に進むという点が異なります。 |