Topiqlo ロゴ

ループ

公開日: 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
まで、それぞれの構文には得意な用途があります。適材適所で使い分けることで、可読性と効率の高いコードを実現しましょう。