章: 第1章: 文法の土台
「何回くり返すかわからないけど、条件が満たされる間は続けたい」——そんな処理に使います
for文は「回数が決まっているループ」に向いていますが、while文は「条件が真の間くり返す」ループです。ページネーションのデータ取得、キューの処理、入力値の検証ループなど、終了タイミングが動的に決まる処理に活用できます。
まずコードを動かしてみる
<?php
$i = 1;
while ($i <= 3) {
echo $i;
$i++;
}
$i <= 3 が条件です。条件が false になるまでブロック内の処理を繰り返します。
while文 vs do-while文の比較
| while文 | do-while文 | |
| 条件チェックのタイミング | ループ前 | ループ後 |
| 最低実行回数 | 0回(条件が最初からfalseなら実行しない) | 1回(必ず1回は実行する) |
| 使う場面 | 最初から条件を確認したい | 必ず1回は処理したい |
<?php
// do-while: 最低1回は実行される
$i = 10;
do {
echo $i; // 10 が表示される(条件は後で確認)
$i++;
} while ($i <= 3);
チェックポイント: while文を書くときは必ず「ループを終了させる処理(カウンターのインクリメントや条件を変える操作)」が含まれているか確認しましょう。忘れると無限ループになります。
無限ループを意図的に使う場合
<?php
// キュー処理などで意図的に無限ループ
while (true) {
$job = getNextJob();
if ($job === null) break; // 仕事がなくなったら終了
processJob($job);
}
while (true) は意図的な無限ループですが、必ず break での脱出条件を用意します。
まとめ & 次のステップ
- while文は「条件が真の間くり返す」ループ
- ループ内で条件を変化させないと無限ループになるので注意
- do-while文は「最低1回は実行する」ループ
while (true)で無限ループを作る場合は必ずbreakの脱出条件を用意する- 回数が決まっているループは for文のほうが意図が伝わりやすい
次回は for文を学びます。「回数が決まっているループ」をシンプルに書く定番の構文です。