基礎

PHPのwhile文入門|繰り返し処理の基本を徹底解説

プログラミングでは、同じ処理を何度も繰り返したい場面が頻繁にあります。PHPのwhile文は、条件がtrueである間、繰り返し処理を実行する最も基本的なループ構造です。

この記事では、while文の基本的な書き方から、無限ループの回避方法、実践的な使用例まで詳しく解説します。

基本的な使い方

while文は「条件がtrueの間、繰り返す」というシンプルな構造です。

PHP
<?php
$count = 0;

while ($count < 5) {
    echo $count . "回目の処理\n";
    $count++;
}
?>
実行結果
0回目の処理
1回目の処理
2回目の処理
3回目の処理
4回目の処理

while文の実行の流れは以下のとおりです。まず条件式 $count < 5 を評価します。trueであればブロック内の処理を実行し、再び条件式を評価します。falseになった時点でループを抜けます。

ここで重要なのは、ループ内で条件を変化させる処理(この例では$count++)を必ず含めることです。これがないと条件が永遠にtrueのままとなり、無限ループに陥ります。

カウントダウンの例

PHP
<?php
$countdown = 5;

while ($countdown > 0) {
    echo "$countdown...\n";
    $countdown--;
}
echo "発射!\n";
?>
実行結果
5...
4...
3...
2...
1...
発射!

実践的な使用例

while文は、繰り返し回数が事前にわからない場合に特に便利です。

PHP
<?php
// 数値を2で割り続けて1以下になるまで繰り返す
$number = 128;
$steps = 0;

echo "開始値: $number\n";

while ($number > 1) {
    $number = $number / 2;
    $steps++;
    echo "ステップ$steps: $number\n";
}

echo "合計 $steps ステップ\n";
?>
実行結果
開始値: 128
ステップ1: 64
ステップ2: 32
ステップ3: 16
ステップ4: 8
ステップ5: 4
ステップ6: 2
ステップ7: 1
合計 7 ステップ
無限ループに注意

while文の条件が永遠にtrueのままだと、プログラムが終了しなくなります。ループ内で必ず条件を変化させる処理を入れましょう。万が一無限ループに入ってしまった場合は、Ctrl+C でプログラムを強制終了できます。

while vs for

繰り返し回数が決まっている場合はfor文、条件に基づいて繰り返す場合はwhile文を使うのが一般的です。どちらでも書けますが、用途に合った方を選ぶとコードが読みやすくなります。

まとめ

  • while文は条件がtrueの間、処理を繰り返し実行する
  • ループ内で条件を変化させる処理を必ず含めること
  • 条件を変化させないと無限ループになるので注意
  • 繰り返し回数が事前にわからない場合にwhile文が適している
  • 回数が決まっている場合はfor文を使う方が一般的