JavaScriptでループ処理を中断するにはどうすればいいですか?

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文を使用します。

その他の参考記事:JavaScript の Break ステートメントと continue ステートメント