【6日でできるPHP入門】while文・do〜while文

 繰り返し処理は、プログラミングにおいて非常に重要な基本テクニックのひとつです。PHPにはさまざまな繰り返し構文がありますが、while文do〜while文は条件を使ったループ処理を直感的に記述できる構文です。この記事では、while文とdo〜while文の基本的な使い方、両者の違い、そして無限ループやbreak文による制御について、具体例を交えてわかりやすく解説します。

1.while文・do〜while文の基本

1.1. while文の基本構造

while文は「条件が成立している間、処理を繰り返す」構文です。

特徴内容
条件判定のタイミングループの最初に条件判定を行う。
初期化・増分処理for文と違い、初期化や増分処理はループ外で記述する必要がある。
最低実行回数条件が最初からfalseの場合は一度も実行されない。

基本書式

while (条件式) {
    // 繰り返し実行する処理
}

サンプルプログラム

ファイル名: lesson35_1.php

<?php
$i = 1;
while ($i <= 3) {
    echo "{$i}回目の処理です<br>";
    $i++;
}
?>

実行結果

1.2. do〜while文の基本構造

do〜while文は「最低1回必ず処理を実行し、その後に条件判定を行う」構文です。

特徴内容
条件判定のタイミングループの最後で条件判定が行われる。
最低実行回数条件に関わらず必ず1回は実行される

基本書式

do {
    // 繰り返し実行する処理
} while (条件式);

サンプルプログラム

ファイル名: lesson35_2.php

<?php
$i = 5;
do {
    echo "{$i}回目の処理です<br>";
    $i++;
} while ($i < 3);
?>

実行結果

(最初の条件判定前に1回実行される)

2.while文とdo〜while文の違い

2.1. 処理の流れの違い

while文do〜while文
条件判定ループのループの
最低実行回数0回(条件次第)1回(必ず実行)

while文の流れ

  1. 条件判定
  2. 成立していれば処理を実行
  3. 2に戻る

do〜while文の流れ

  1. まず処理を実行
  2. 条件判定
  3. 成立していれば1に戻る

2.2. 実際に違いを確認する例

ファイル名: lesson35_3.php

<?php
$num = 0;
// while文
echo "while文の出力:";
$i = 0;
while ($i < $num) {
    echo "*";
    $i++;
}
// do〜while文
echo "<br>do〜while文の出力:";
$i = 0;
do {
    echo "*";
    $i++;
} while ($i < $num);
?>

実行結果

3.無限ループとbreak文

3.1. 無限ループの書き方

while文の条件式にtrueを指定すると、無限に繰り返されます。

例:

while (true) {
    echo "無限ループです<br>";
}

3.2. break文によるループ終了

ループ内でbreak;を使うと、強制的にループから抜けられます。

例:

ファイル名: lesson35_4.php

<?php
$num = 0;
while (true) {
    echo "Hello!<br>";
    $num++;
    if ($num === 4) {
        break;
    }
}
?>

実行結果

まとめ

  • while文は「条件を満たす間」繰り返し処理を行う。
  • do〜while文は「最低1回は実行し、その後に条件判定」するループ。
  • 無限ループは条件をtrueにすることで作れるが、必ずbreakなどで終了制御が必要。
  • 繰り返し処理の流れや特徴をしっかり理解して使い分けましょう。