Day6 繰り返しの練習問題
Day6 のテーマは for と while。
ここでは、繰り返し処理の理解を深めるための練習問題と、
それぞれの解答・解説をまとめていきます。
初心者がつまずきやすいポイントを丁寧に拾いながら、
「なぜそうなるのか」まで理解できる構成にしています。
for 文の練習問題
問題1:1〜5 を順番に表示する
1 から 5 までの数字を for 文で表示してください。
解答例
for (let i = 1; i <= 5; i = i + 1) {
console.log(i);
}
JavaScript解説
i を 1 からスタートし、5 まで 1 ずつ増やしています。
「初期値 → 条件 → 更新」の流れが for 文の基本です。
問題2:0〜8 を 2 ずつ増やして表示する
0, 2, 4, 6, 8 を表示してください。
解答例
for (let i = 0; i <= 8; i = i + 2) {
console.log(i);
}
JavaScript解説
更新部分を i = i + 2 にすることで、2 ずつ増やせます。
「何をどれだけ増やすか」は自由に設定できます。
問題3:1〜10 の合計を求める
for 文を使って 1〜10 の合計を求めてください。
解答例
let sum = 0;
for (let i = 1; i <= 10; i = i + 1) {
sum = sum + i;
}
console.log(sum);
JavaScript解説
sum を「結果をためる箱」として使っています。
ループのたびに i を足していくのがポイントです。
while 文の練習問題
問題4:1〜5 を while 文で表示する
for 文ではなく while 文で、1〜5 を表示してください。
解答例
let i = 1;
while (i <= 5) {
console.log(i);
i = i + 1;
}
JavaScript解説
while 文では「更新」を自分で書く必要があります。
更新を忘れると無限ループになるため注意が必要です。
問題5:10 から 1 までカウントダウンする
while 文で 10 → 1 の順に表示してください。
解答例
let i = 10;
while (i >= 1) {
console.log(i);
i = i - 1;
}
JavaScript解説
減らすループは i = i - 1 を使います。
条件と更新が対応していることが重要です。
for と while の応用問題
問題6:3 の倍数だけを表示する(for)
1〜20 の中で、3 の倍数だけを表示してください。
解答例
for (let i = 1; i <= 20; i = i + 1) {
if (i % 3 === 0) {
console.log(i);
}
}
JavaScript解説
i % 3 === 0 は「3 で割った余りが 0」つまり「3 の倍数」。
for と if の組み合わせは非常に重要です。
問題7:合計が 50 を超えるまで足し続ける(while)
1 から順に足していき、合計が 50 を超えたら終了してください。
最後に「合計」と「最後に足した数」を表示してください。
解答例
let sum = 0;
let n = 1;
while (sum <= 50) {
sum = sum + n;
n = n + 1;
}
console.log("合計:", sum);
console.log("最後に足した数:", n - 1);
JavaScript解説
「何回足すかはわからない」ため while が適しています。
条件で止めるタイプのループは while の得意分野です。
セキュリティ視点の問題
問題8:無限ループになるコードを修正する
次のコードは無限ループになります。
原因を説明し、正しく動くように修正してください。
let i = 0;
while (i < 5) {
console.log(i);
}
JavaScript解答例(修正)
let i = 0;
while (i < 5) {
console.log(i);
i = i + 1;
}
JavaScript解説
i を増やしていないため、条件が永遠に true のままになります。
無限ループはブラウザを固めるだけでなく、
サーバー側では CPU を使い続ける危険なバグになります。
Day6 練習問題まとめ
Day6 の練習で身につくことは次の通りです。
for 文で「回数が決まっている繰り返し」が書ける
while 文で「条件次第の繰り返し」が書ける
合計を求める・条件付きで処理するなどの応用ができる
無限ループの危険性と防ぎ方を理解できる
繰り返しはプログラミングの中でも特に使用頻度が高い構文です。
ここをしっかり理解しておくと、Day7 以降の配列・関数が一気に楽になります。
