JavaScriptでループ処理を中断する方法
JavaScriptでループ処理を記述する際、特定の条件下でループを中断したい場合があります。本記事では、JavaScriptにおけるループ処理の中断方法について解説し、具体的なコード例を交えながら説明します。
break
文によるループの中断
JavaScriptでは、break
文を用いることで、ループ処理を任意のタイミングで中断することができます。 break
文は、for
ループ、while
ループ、do...while
ループ、switch
文など、様々なループ構造や条件分岐構造の中で使用可能です。
for
ループにおけるbreak
文の使用例
以下の例では、for
ループを使用して、数値を1から10までカウントし、変数i
が5に達した時点でループを中断します。
<script>
for (let i = 1; i <= 10; i++) {
if (i === 5) {
break; // iが5になったらループを中断
}
console.log(i);
}
// 出力結果: 1 2 3 4
</script>
上記の例では、i
が5になるとbreak
文が実行され、ループ処理が中断されます。そのため、コンソールには1から4までの数字のみが出力されます。
while
ループにおけるbreak
文の使用例
以下の例では、while
ループを使用して、数値を1から10までカウントし、変数i
が5に達した時点でループを中断します。
<script>
let i = 1;
while (i <= 10) {
if (i === 5) {
break; // iが5になったらループを中断
}
console.log(i);
i++;
}
// 出力結果: 1 2 3 4
</script>
while
ループでも同様に、break
文を用いることでループ処理を中断できます。
無限ループとbreak
文
while
文では、条件式にtrue
を直接書き込むことによって、無限ループを意図的に作成することができます。
<script>
while (true) {
// 無限に実行される処理
// break文などでループを抜けない限りは無限ループとなる
}
</script>
条件式はtrue
であるときにループのブロック内が実行されるため、true
を直に指定した場合は、break
文などでループを抜けない限りは無限ループ処理となります。 無限ループは、特定の条件が満たされるまで処理を継続したい場合などに利用されます。ただし、無限ループ内でbreak
文などのループ脱出処理を適切に実装しないと、プログラムが応答不能になる可能性があるため注意が必要です。
ループの中断と処理のスキップ
break
文はループを完全に中断しますが、ループ内の特定の処理をスキップしたい場合はcontinue
文を使用します。
continue
文の使用例
以下の例では、for
ループを使用して、1から10までの数字を処理し、偶数の際には処理をスキップして次のループへ移行します。
<script>
for (let i = 1; i <= 10; i++) {
if (i % 2 === 0) {
continue; // 偶数の場合は、以降の処理をスキップして次のループへ
}
console.log(i);
}
// 出力結果: 1 3 5 7 9
</script>
上記の例では、continue
文を用いることで、偶数の際にconsole.log(i)
の処理をスキップし、次のループ処理へ移行しています。
まとめ
本記事では、JavaScriptにおけるループ処理の中断方法について解説しました。break
文を用いることでループ処理を任意のタイミングで中断することができ、continue
文を用いることで特定の処理をスキップすることができます。これらの文を適切に使い分けることで、柔軟なループ処理を実現できます。
参考資料
関連QA
Q1: break
文を使用せずにループを中断する方法はありますか?
A1: ループの条件式を操作してfalse
にすることで中断できます。ただし、break
文を使用する方がコードの可読性が向上するため、特別な理由がない限りはbreak
文の使用が推奨されます。
Q2: break
文はネストされたループをすべて中断しますか?
A2: いいえ、break
文は、それが記述されている最も内側のループのみを中断します。ネストされた外側のループを中断したい場合は、ラベルを使用する必要があります。
Q3: continue
文とbreak
文の使い分け方を教えてください。
A3: ループ処理を完全に中断したい場合はbreak
文を、特定の処理をスキップして次のループ処理へ移行したい場合はcontinue
文を使用します。