JavaScript | for文

JavaScript JavaScript
スポンサーリンク

JavaScriptのfor文の基本

繰り返しが必要なときに使うのがfor文です。イメージは「スタート地点」「止まる条件」「進み方」をまとめて書く仕組み。決まった回数だけ同じ処理を回したいときに向いています。

for (初期化; 条件; 更新) {
  // 繰り返したい処理
}
JavaScript
  • 初期化: ループの最初に1回だけ実行(例: let i = 0
  • 条件: 繰り返しを続けるか毎回チェック(例: i < 5
  • 更新: 1周終わるたびに実行(例: i++

まずは動かして理解する

例1:0〜4を表示する

for (let i = 0; i < 5; i++) {
  console.log(i);
}
JavaScript
  • ポイント: iは0から始まり、5未満のあいだ1ずつ増えるので、0/1/2/3/4が出る。

例2:1〜10の合計を計算

let sum = 0;
for (let i = 1; i <= 10; i++) {
  sum = sum + i; // または sum += i;
}
console.log(sum); // 55
JavaScript
  • ポイント: 合計用の箱(変数)に、毎周iを足していく。

例3:配列を順番に取り出す

const fruits = ["apple", "banana", "orange"];
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}
JavaScript
  • ポイント: 配列は0から始まる。最後の要素まで回すにはi < fruits.lengthが定番。

進み方を変えるだけで用途が広がる

例4:2刻みで進める(偶数だけ)

for (let i = 0; i <= 10; i += 2) {
  console.log(i); // 0, 2, 4, 6, 8, 10
}
JavaScript
  • ポイント: i += 2で2ずつ増える。刻み幅は自由。

例5:カウントダウン(逆順)

for (let i = 5; i > 0; i--) {
  console.log(i); // 5, 4, 3, 2, 1
}
JavaScript
  • ポイント: 条件は「0より大きい間」、更新はi--で1ずつ減らす。

例6:複数の変数を同時に更新

for (let left = 0, right = 10; left < right; left++, right--) {
  console.log(left, right);
}
JavaScript
  • ポイント: 初期化・更新はカンマで複数書ける。両端から中央に向けて進む処理に便利。

よくあるつまずきと回避法

  • 条件が間違って無限ループ:
for (let i = 0; i < 5; i--) { /* iが減るので終わらない */ }
JavaScript

回避: 増やしたいならi++、減らしたいなら条件も逆にする。

  • 境界のミス(<= と < の取り違え):
    • 例: i <= 5なら0〜5の6回、i < 5なら0〜4の5回。
    • 回避: 何回回したいかを先に決めて、値の範囲を紙に書くと確実。
  • 配列の範囲外アクセス:
for (let i = 0; i <= arr.length; i++) { /* 最後でarr[arr.length]はundefined */ }
JavaScript

回避: 配列はi < arr.lengthが基本。

  • 変数の使い回し(スコープ):
    • 例: for (var i = 0; ... )はループ外でもiが残る。
    • 回避: 基本はletを使う(ブロック内限定で安全)。

小さな練習問題

  • 練習1:3の倍数だけ表示
    • 条件: 1〜30期待: 3, 6, 9, …, 30
for (let i = 3; i <= 30; i += 3) {
  console.log(i);
}
JavaScript
  • 練習2:配列から文字数を表示
    • 条件: ["hi", "hello", "bye"]の各文字数
const words = ["hi", "hello", "bye"];
for (let i = 0; i < words.length; i++) {
  console.log(words[i].length);
}
JavaScript
  • 練習3:FizzBuzz(定番)
    • 条件: 1〜20期待: 3の倍数は”Fizz”、5の倍数は”Buzz”、両方の倍数は”FizzBuzz”
for (let i = 1; i <= 20; i++) {
  if (i % 15 === 0) {
    console.log("FizzBuzz");
  } else if (i % 3 === 0) {
    console.log("Fizz");
  } else if (i % 5 === 0) {
    console.log("Buzz");
  } else {
    console.log(i);
  }
}
JavaScript

どんなときにfor文を選ぶか

  • 決まった回数で回す: 例)10回だけ試す、0〜Nまで処理する。
  • インデックスを使いたい: 例)配列の位置を取りたい、偶数番目だけ処理したい。
  • 開始・終了・進み方を柔軟に指定したい: 例)2刻み、逆順、両端から中央へ。
タイトルとURLをコピーしました