第6回 ループ(for, while, do-while)

投稿日:2024.10.25.
更新日:2025.04.12.

ホームページ制作

JavaScriptを学ぼう

株式会社TREVOの月額制ホームページ制作サービス
PR

板浪 雅樹
執筆・編集 板浪 雅樹

2005年から WEB 業界一筋。500サイト超を手がける SEO・WordPress のエキスパート。「公開後こそ本番」を掲げ、データ分析とユーザー視点で成果を引き出す運用を提案。

2005年に制作会社へ入社後、プログラマーからキャリアをスタート。サーバー構築・データベース設計で培った技術を強みに、WordPress テーマ/プラグイン開発やサイト移行の難案件を多数担当してきました。
2010年以降は SEO エンジニアとしても活動領域を拡大。コンテンツ設計・内部リンク最適化・高速化チューニングにより、競合の激しいビッグキーワードで上位獲得を実現してきました。
現在は TREVO のウェブディレクターとして、要件定義から運用改善まで一気通貫でリード。AI ライティングや GA4/Looker Studio を活用したレポーティング手法を開発し、「数字で説明できるサイト運用」をポリシーにクライアントの ROI 最大化を支援しています。
趣味/強み:筋トレとランニングで日々の集中力をキープ。複雑な課題を“仕組み”で解決するのが得意。
モットー:「サイトは資産。改善を止めた瞬間から価値は目減りする」

執筆記事:記事一覧ページ
SNS:x(旧 Twitter)@TREVO_WEB

プログラミングにおいて、ループは特定の処理を何度も繰り返し実行するための基本的な構文です。大量のデータを処理したり、同じ操作を複数回行う場合に不可欠です。ループを活用することで、コードの冗長性を減らし、効率的なプログラムを作成できます。

for文の基本構文

for文は、繰り返し回数が明確な場合に最もよく使用されるループ構文です。

基本構文:

for (初期化; 条件式; 増減式) {
  // 繰り返し実行するコード
}
  • 初期化はループカウンタの初期値を設定します
  • 条件式はループを続行する条件を指定します
  • 増減式はループカウンタを更新します

for文の実例

配列のループ処理

配列内の要素を順番に処理する場合、for文が非常に便利です。

let fruits = ['りんご', 'バナナ', 'オレンジ'];

for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

// 出力結果
// りんご
// バナナ
// オレンジ

多重ループ(ネストされたループ)

ループの中に別のループを入れることで、多次元のデータを処理できます。

let 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}] = ${matrix[i][j]}`);
  }
}

// 出力結果
// matrix[0][0] = 1
// matrix[0][1] = 2
// matrix[1][0] = 3
// matrix[1][1] = 4

while文の基本構文

while文は、指定した条件が真である間、コードを繰り返し実行します。

基本構文

while (条件式) {
  // 繰り返し実行するコード
}

while文の実例

条件に基づく繰り返し処理

ユーザーの入力や外部条件に基づいてループを続行する場合に使用します。

let count = 0;

while (count < 5) {
  console.log(`カウントは${count}`);
  count++;
}

// 出力結果
// カウントは0
// カウントは1
// カウントは2
// カウントは3
// カウントは4

do…while文の基本構文

do...while文は、少なくとも一度はコードを実行し、その後条件式を評価します。

基本構文

do {
  // 最低一度は実行されるコード
} while (条件式);

do…while文の実例

ユーザー入力の再試行など

ユーザーが正しい入力をするまで繰り返す場合に適しています。

let input;

do {
  input = prompt('0から9の数字を入力してください');
} while (isNaN(input) || input < 0 || input > 9);

console.log(`入力された数字は${input}です`);

breakとcontinueによるループ制御

ループの中断と次のイテレーションへのスキップ

  • breakはループを完全に終了します
  • continueは現在のイテレーションをスキップし、次のイテレーションに進みます

例:break

for (let i = 0; i < 10; i++) {
  if (i === 5) {
    break;
  }
  console.log(i);
}

// 出力結果
// 0
// 1
// 2
// 3
// 4

例:continue

for (let i = 0; i < 5; i++) {
  if (i === 2) {
    continue;
  }
  console.log(i);
}

// 出力結果
// 0
// 1
// 3
// 4

ループの使い分け

for文、while文、do…while文の選択基準

  • for文は繰り返し回数が明確な場合に使用します
  • while文は繰り返し回数が不明で、特定の条件が満たされるまでループを続行したい場合に適しています
  • do…while文は条件に関わらず、少なくとも一度はコードを実行したい場合に使用します

ループのパフォーマンス最適化

効率的なループの書き方

  • 条件式を簡潔にすると複雑な条件式はパフォーマンスを低下させます
  • ループ内での計算を最小限にするとループ外で計算できるものは事前に計算します

let array = [/* 大量のデータ */];
let length = array.length; // ループ外で配列の長さを取得

for (let i = 0; i < length; i++) {
  // 処理
}

for…in文とfor…of文

ES6以降の新しいループ構文

  • for…in文はオブジェクトの列挙可能なプロパティを反復処理します
  • for…of文は反復可能なオブジェクト(配列、文字列など)の値を反復処理します

例:for…in

let obj = { a: 1, b: 2, c: 3 };

for (let key in obj) {
  console.log(`${key} - ${obj[key]}`);
}

// 出力結果
// a - 1
// b - 2
// c - 3

例:for…of

let numbers = [10, 20, 30];

for (let num of numbers) {
  console.log(num);
}

// 出力結果
// 10
// 20
// 30

無限ループの注意点

無限ループの原因と防止策

無限ループは、ループの終了条件が満たされないために発生し、プログラムが停止しなくなります。

防止策

  • 条件式を正しく設定する:ループが必ず終了するように条件を設定します
  • デバッグする:ループ内で変数が正しく更新されているか確認します

実践的なループの例

実際のコード例で学ぶループ処理

例:1から100までの合計を計算する

let sum = 0;

for (let i = 1; i <= 100; i++) {
  sum += i;
}

console.log(`合計は${sum}`);

// 出力結果
// 合計は5050

まとめ

学んだ内容の総括と次回予告

今回は、JavaScriptにおけるループ構文(forwhiledo...while)について学びました。ループを効果的に使用することで、繰り返し処理を効率的に行うことができます。次回は、これらのループを活用した関数の定義と呼び出しについて詳しく解説します。お楽しみに!

関連記事

大阪のホームページ制作会社TREVOでは、最短2日で仮サイトを公開できるスピード対応や、SEO対策に強いオリジナルデザインの制作サービスを提供しています。

関連の記事

CONTACT

ホームページ制作・Web制作に関するご質問やご相談は、
下記フォームよりお問い合わせください。

無料のお見積りや初回のご相談も承っておりますので、「まだ検討中」「ちょっと話を聞いてみたい」といった段階でも大歓迎です。
現状のホームページ診断も無料で実施中です。

0120-83-8567
平日9:00~18:00まで 定休日:土 日 祝