ループ
公開日: 2025/06/02
ループとは?同じ処理を繰り返すプログラムの基本構文
はじめに
プログラミングで「同じ処理を何度も行う」必要がある場面は多く存在します。商品の一覧を表示したり、毎秒タイマーを更新したり、ユーザー入力を繰り返し確認したり──そうした処理を実現するのが「ループ」です。本記事では、ループの基本構文、種類ごとの違い、よくある使い方や注意点を解説します。
基本情報・概要
ループ(loop)とは、一定の条件のもとで同じ処理を繰り返すための制御構文です。JavaScriptをはじめとする多くの言語では、以下のようなループ構文が用意されています。
for (let i = 0; i < 3; i++) { console.log(i); } let count = 0; while (count < 3) { console.log(count); count++; } const list = ["a", "b", "c"]; for (const item of list) { console.log(item); }
比較・分類・特徴の表形式まとめ
構文 | 説明 | 適した場面 |
---|---|---|
for | 決まった回数の繰り返し | カウンタで回す処理 |
while | 条件が成り立つ間、繰り返す | 条件ベースで制御したいとき |
do...while | 最低1回は処理を行う | 入力チェックなど |
for...of | 配列や文字列などの各要素に対して繰り返す | 配列を簡潔に扱いたい場合 |
forEach | 配列のループに特化した高階関数的構文 | 短い処理でループさせたいとき |
深掘り解説
for文
for (let i = 0; i < 5; i++) { console.log(i); // 0〜4を出力 }
初期化 → 条件 → 更新
の順に記述し、最も制御性が高いループ文です。
while文
let count = 0; while (count < 3) { console.log(count); count++; }
条件を満たしている限り処理を繰り返します。ループの実行回数が事前に分からない場合に便利です。
do...while文
let i = 0; do { console.log(i); i++; } while (i < 3);
do...while
は最低1回は必ず処理を実行します。
for...of文
const colors = ["red", "green", "blue"]; for (const color of colors) { console.log(color); }
配列・文字列・Set・Mapなど反復可能なオブジェクトに使える文法です。
forEachメソッド
const users = ["Taro", "Hanako"]; users.forEach(user => { console.log(user); });
メソッド的に書けて可読性が高いですが、
break
や continue
は使用できません。
応用・発展的な使い方
ネストされたループ
for (let i = 0; i < 2; i++) { for (let j = 0; j < 2; j++) { console.log(`[${i}, ${j}]`); } }
多次元データや組み合わせを扱う際に有効です。
continue / break
for (let i = 0; i < 5; i++) { if (i === 2) continue; if (i === 4) break; console.log(i); }
continue
はスキップ、break
はループ中断に使います。
再帰との比較
再帰(関数が自分自身を呼ぶ)でもループと同様の処理は可能ですが、ループのほうがメモリ効率が良い場合が多いです。
よくある誤解と注意点
-
は配列には非推奨(キーが文字列で返るため)for...in
-
ではforEach
やbreak
、continue
が使えないawait
-
無限ループに注意(条件式を必ず正しく更新する)
while (true) { // 条件がないと抜けられません }
-
多重ループの中断はフラグやラベルを使って明示的に処理を制御する必要あり
まとめ
ループは「繰り返し処理」を効率よく実装するための基本構文です。単純な
for
文から、配列専用の for...of
や forEach
まで、それぞれの構文には得意な用途があります。適材適所で使い分けることで、可読性と効率の高いコードを実現しましょう。