概要

do-whilewhile の親戚だが、「最低 1 回は必ず本体を実行してから、条件を判定する」という点だけが違う。文法も do { ... } while (条件); と、ブロックが先・条件が後ろになっていて、末尾にセミコロンが付くのが特徴だ。while が「実行する前に条件を見る」のに対し、do-while は「実行してから条件を見る」と覚えると違いが頭に入りやすい。

この性質が活きるのが 入力検証 のような場面だ。たとえば「正の数が入力されるまでユーザーに何度も入力させたい」とき、while だと「最初に 1 回入力を受け取る → 条件を判定 → ループに入る」と 2 段階に分けないとならず、入力処理を 2 箇所に書く羽目になる。do-while なら「まず 1 回読む → ダメならもう一度読む」と自然な流れで書ける。「条件チェックの前に、データ取得が必要」というパターンが綺麗にハマる。

ただし、現場での使用頻度は forwhile より明らかに低い。多くのケースは while で十分書けるし、慣れていない人が読むと「あれ、これいつ条件チェックされるんだっけ」と混乱の元にもなる。「最低 1 回必ず実行する」が本質的に必要なときだけ do-while を選び、迷うなら while で書く、というのが実務的な判断基準になる。

学習目標

ドリル

no 内容
01 条件が最初から偽でも 1 回は実行される do-while を書く
02 入力が正になるまで何度も読み、最後に「OK」を出力

演習: ドリル 01 — 最低 1 回は実行する

問題

do-while 文を使って、条件が最初から偽でも 1 回は処理が実行される ことを確認します。

$i = 5; から始めて、$i < 5 の条件で do-while ループを書いてください。 ループの中では 実行された と 1 行出力します。

期待される出力:

実行された

ヒント

演習: ドリル 02 — 正の数が入力されるまで読む

問題

do-while を使って、標準入力から整数を 1 行ずつ読み続け、正の整数 (1 以上) が入力されたらループを抜けて OK と出力してください。

入力例:

-3
0
-1
7

期待される出力:

OK

(7 を読んだ時点でループを抜ける)

ヒント

この章を AI に聞く

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

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

X で共有 Hatena LINE