概要

for 文が「N 回繰り返す」のに向いているのに対し、while は「条件が真の間だけ繰り返す」のに向いている。回数が事前に分からない処理 — たとえば「ユーザーが quit と入力するまで」「ファイルの末尾に到達するまで」「合計が 100 を超えるまで」のような、終了条件が状態で決まる ループは while の方が自然に書ける。

文法は while (条件) { ... } とシンプルで、for から「初期化」と「更新」の枠を外し、条件チェックだけを残した形だと考えると分かりやすい。代わりに、カウンタやフラグの更新は 自分でループ本体の中に書く 必要がある。$i = 0 のような初期化はループの前で、$i++ のような更新は本体の中で、と役割を意識的に分けて書くのがコツだ。

while で最大の落とし穴が 無限ループ だ。while (true) と書いたまま break を入れ忘れたり、条件に使っている変数を本体で更新し忘れると、プログラムは永遠に止まらない。for の場合は更新式が文法に組み込まれているので忘れにくいが、while は自由度が高い分、書き手が「いつ条件が変わるか」を意識する責任を負う。書き終わったら必ず「この条件は、本当にいつか偽になるか」を 1 回自問する習慣をつけよう。

学習目標

ドリル

no 内容
01 入力 N から 1 まで降順で出力
02 0 が入力されるまで数を読み続け、合計を出力

演習: ドリル 01 — 降順カウント

問題

標準入力で整数 N を 1 行受け取り、N から 1 まで降順で 1 行ずつ出力してください。

入力例:

5

期待される出力:

5
4
3
2
1

ヒント

演習: ドリル 02 — 0 まで足し続ける

問題

標準入力から 整数を 1 行ずつ何度も 読み、0 が入力されたら終了して、それまでに読んだ整数の合計を出力してください (※ 0 自身は合計に含めない・含めても結果は同じです)。

入力例:

3
5
2
8
0

期待される出力:

18

ヒント

この章を AI に聞く

  1. 「ch02 — while 文」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch02 — while 文」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch02 — while 文」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch02 — while 文」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE