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刻み、逆順、両端から中央へ。

