繰り返し
公開日: 2025/06/02
繰り返し処理とは?ループを使って効率的に同じ処理を行う方法
はじめに
プログラムでは、「同じ処理を何度も行いたい」という場面が頻繁に登場します。たとえば、配列の中身を順に表示したり、1から10までの数字を加算したりする処理などです。こうした繰り返しの処理を効率的に行うために用意されているのが「繰り返し(ループ)構文」です。本記事では、JavaScriptを中心に、代表的な繰り返し文とその使い方、注意点などを紹介します。
基本情報・概要
繰り返し(ループ)とは、同じ処理を一定回数または条件が満たされるまで実行する構文です。主な種類には以下のようなものがあります。
:決まった回数のループfor
:条件がtrueの間繰り返すwhile
:最低1回は実行されるループdo...while
:配列や文字列などの反復可能オブジェクト向けfor...of
:配列向けのメソッド的ループforEach
比較・分類・特徴の表形式まとめ
構文 | 特徴 | 使用例 |
---|---|---|
for | 回数が決まっているループ |
|
while | 条件がtrueの間ループを継続 |
|
do...while | 条件にかかわらず最低1回は実行 |
|
for...of | 配列や文字列の要素を順に処理 |
|
forEach | 配列に対して関数を適用 |
|
深掘り解説
for文(もっとも基本的なループ)
for (let i = 0; i < 5; i++) { console.log(i); // 0〜4が出力される }
初期化・条件・更新という3つの要素があり、最も柔軟性のある構文です。
while文とdo...while文
let count = 0; while (count < 3) { console.log(count); count++; } let n = 0; do { console.log(n); n++; } while (n < 3);
while
は最初に条件を判定し、do...while
は後判定です。
for...of(ES6以降)
const fruits = ["apple", "banana", "orange"]; for (const fruit of fruits) { console.log(fruit); }
反復可能(iterable)なオブジェクトに使える簡潔な構文です。
forEach(配列専用)
const names = ["Taro", "Hanako"]; names.forEach(name => { console.log(name); });
break
や continue
が使えない点には注意が必要です。
応用・発展的な使い方
ネストされたループ
ループ内にループを組み合わせることで、多次元データを処理できます。
const matrix = [ [1, 2], [3, 4] ]; for (let i = 0; i < matrix.length; i++) { for (let j = 0; j < matrix[i].length; j++) { console.log(matrix[i][j]); } }
continue / break を使った制御
for (let i = 0; i < 5; i++) { if (i === 2) continue; // スキップ if (i === 4) break; // 中断 console.log(i); }
再帰との使い分け
ループと再帰(関数の中で自分を呼び出す)は構造上似ていますが、明確な終了条件を持つ繰り返しにはループの方が一般的です。
よくある誤解と注意点
-
無限ループに注意(条件式が変化しない場合)
-
はforEach
やawait
を使えないため非同期処理に不向きbreak
-
配列に
を使うと意図しないプロパティまで列挙される可能性ありfor...in
const arr = ["a", "b"]; for (let key in arr) { console.log(key); // 0, 1 (値ではなくキーが列挙される) }
まとめ
繰り返し処理は、プログラムにおいて「効率化」を実現するための不可欠な構文です。
for
や while
を基本に、for...of
や forEach
を使い分けることで、読みやすく拡張性の高いコードを書くことができます。ループの基本をしっかり押さえたうえで、break や continue などの制御文も活用していきましょう。
``