ループ:for と while
1 から 100 までの整数を手で足すと時間がかかります。三行の for ループなら一瞬で計算して、5050 と表示します。
同じことを何度もする
1 から 5 までの数を表示するのに console.log を五行書くのはかまいません。でも 1 から 1,000 までをそのやり方で表示するのは無理です。ループは同じコードのブロックを、毎回少しずつ変えながら、条件が止まれと言うまで何度も実行します。ループこそコンピューターの本領です。コンピューターは飽きることも、数えまちがえることもありません。
for ループ
for (let i = 1; i <= 5; i++) {
console.log(i);
}
// 1, 2, 3, 4, 5 を一行ずつ表示for のあとのかっこには、セミコロンで区切った三つの部分が入ります。一つ目の let i = 1 は、ループが始まる前に一度だけ実行され、カウンター変数を作ります。二つ目の i <= 5 は条件で、毎回の周回の前に確かめられます。これが false になるとループは終わります。三つ目の i++ は毎回の周回のあとに実行され、カウンターを進めます。ブロックを一回通ることを反復と呼びます。たどってみましょう。i は 1 で、条件は true なので 1 が表示され、i は 2 になります。これを続けて i が 6 になると条件が false になり、プログラムは閉じ波かっこのあとから続けます。
カウンターはふつう i と呼びます。これは数学からの伝統ですが、どんな名前でもかまいません。ほかの刻みで数えることもできます。for (let i = 10; i >= 0; i -= 2) は 10、8、6、4、2、0 と数を減らしながら数えます。
合計を積み上げる
いちばんよく使うループのパターンは累積です。ループの前に変数を作り、中で更新し、あとで使います。冒頭の合計はこう書きます。
let sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum); // 5050それぞれの行がどこにあるかに注目しましょう。もし let sum = 0 がループの中にあったら、sum は反復のたびに 0 に戻ってしまいます。もし console.log が中にあったら、答えを一つ表示するのではなく、途中の合計を 100 個表示してしまいます。ループの前とあとは、ループそのものと同じくらい大切です。
while ループ
while ループには条件しかありません。条件が true であるかぎり、ブロックを実行し続けます。何回まわればよいか前もってわからないときに使います。たとえば、ある数を 1,000 をこえるまで 2 倍し続けるときです。
let n = 1;
let steps = 0;
while (n <= 1000) {
n *= 2;
steps++;
}
console.log(n, steps); // 1024 10while ループの中の何かが、いつかは条件を false にしなければなりません。n を変える行を忘れると、条件はずっと true のままです。これが無限ループで、ページが固まってしまいます。練習ボックスでそうなったら、ページを再読み込みしてコードを直しましょう。for ループでは更新の部分を見出しに書くので、このまちがいは起こりにくくなります。
break と continue
ループの中の流れを変えるキーワードが二つあります。break はすぐにループをぬけます。continue は今の反復の残りを飛ばして、次の反復に進みます。たとえば、1 から 10 までのループの先頭に if (i % 3 === 0) continue; を置くと、3、6、9 以外のすべての数が表示されます。
例題。1 から 50 までの数のうち、7 の倍数はいくつあるでしょうか。let count = 0 から始め、i を 1 から 50 までループさせ、中に if (i % 7 === 0) count++; と書きます。ループのあと、count は 7 になります。7、14、21、28、35、42、49 です。
for (初期化; 条件; 更新) { 本体 } for (let i = 1; i <= 5; i++)
| ループ | ブロックを何度もくり返し実行するコード |
| 反復 | ループの本体を一回通ること |
| カウンター | 周回を数える変数。よく i を使う |
| 累積変数 | sum のように、ループの中で積み上げていく変数 |
| while | 条件が true のあいだくり返す |
| 無限ループ | 条件がいつまでも false にならないループ |
| break | 今すぐループをぬける |
| continue | 次の反復へ飛ぶ |
- 何行表示されますか?
for (let i = 0; i < 4; i++) { console.log(i); } - 最後に表示される数はいくつですか?
for (let i = 0; i < 4; i++) { console.log(i); } - 何が表示されますか?
let total = 0; for (let i = 1; i <= 4; i++) { total += i; } console.log(total); - 何が表示されますか?
let p = 1; for (let i = 1; i <= 5; i++) { p *= 2; } console.log(p); - 何が表示されますか?
let n = 10; while (n > 3) { n -= 3; } console.log(n); - 何行表示されますか?
for (let i = 10; i >= 0; i -= 2) { console.log(i); } - 何が表示されますか?
for (let i = 1; i <= 10; i++) { if (i === 4) break; console.log(i); }- 1 2 3 on separate lines
- 1 to 10 except 4
- 1 2 3 4 on separate lines
- 何行表示されますか?
for (let i = 1; i <= 10; i++) { if (i % 2 === 0) continue; console.log(i); } - このループのどこがまちがっていますか?
let i = 0; while (i < 5) { console.log(i); }- どこもまちがっていない
- i が変わらないので、いつまでも止まらない
- 何も表示しない
- 何が表示されますか?
let count = 0; for (let i = 1; i <= 50; i++) { if (i % 7 === 0) count++; } console.log(count);
- for (初期化; 条件; 更新) { ... } は、条件が true のあいだくり返す。
- 累積変数はループの前に作り、中で更新し、あとで使う。
- while (条件) { ... } は、何回まわるかわからないループに向いている。
- 何かが条件を false にしないと、ループは終わらない。
- break はループをぬけ、continue は次の周回へ飛ぶ。
このコースの出典 (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
確認日: 2026-10-17