支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • 「PHP」while文の使い方や注意

PHPを学習中の方に向けて、当記事では「while文」の意味や使い方、その他注意点などについてご紹介いたします。

while文とは

PHPにおけるwhile文とは繰り返し処理を行うための記述式です。繰り返し処理とは、「条件式がtrueである間、プログラムを実行し続ける」処理のことを指します。「while文」は、繰り返し処理の中では「for文」と並びよく使用されるのではないでしょうか。
では、具体的な記述の方法を見ていきましょう。

while文の記述式


while (条件式){
  行う処理;
}

「while文」の基本はこの形です。
流れとしては
①条件式の真偽判定が行われる。
②trueであれば、「{}(波かっこ)」内の処理が実行される。
③実行後、再度条件式の真偽判定が行われる。
という流れとなっています。

では実際に記述例を挙げてみます。


$number = 0;
while($number < 5){
    echo $number;
    $number++;
}

出力結果


01234

通常、「while文」や「for文」のような繰り返し処理では、「繰り返しから抜け出すための記述を行う」ことが一般的です。
上記の例ですと「$number++」という記述がそれにあたります。
条件式から抜けるための記述を何かしらしなければ、無限ループとなってしまうからです。

無限ループについて

無限ループとは条件式でfalseが返らず、永遠に処理を実行し続けることです。
以下のコードをご覧ください。


$number = 0;
while($number < 5){
    echo $number;
}

先ほどの記述例から「$number++」を抜いた状態です。
この記述の仕方では、「$number」の値はいつまでたっても「0」のままなので、条件式でtrueが返り続け「while文」から抜けることができません。
この式ですと、「00000000000000............」と無限に出力され続けます。
こうなってしまうと、プログラムに負荷がかかりクラッシュしてしまいます。
意図しない無限ループは危険ですので極力起きないよう注意しましょう。

break

「while文」から抜けるためには、条件式がfalseとなるような記述を行えば済みますが、「break」を用いることでその時点で「while文」から抜けることが可能となります。
以下で記述例を見ていきましょう。


$number = 0;
while($number < 5){
    echo $number;
    if($number == 1){
    break;
    }
    $number++;

}

出力結果


01

この例では、0が出力された後、「if文」にて真偽判定を行い、falseが返り$number++が実行され、再度ループの先頭に戻ります。
その後、1を出力しif文にてtrueが返り、「break」が実行され、「while文」から抜けるという流れになっています。

上記の例のように、「while文」に用いられる「break」はif文と組み合わせると良いでしょう。
if文を用いずbreakを入れてしまうとループせず1回の処理で終了してしまうため繰り返し処理を使う意味がないからです。

do-while文

「while文」では、最初に条件式の真偽判定が行われますので、ブロック内の処理が一度も実行されない可能性があります。
そこで、最低1回は処理を実行したい時に便利なのが「do-while文」です。
「do-while文」では、まず初めに処理を実行し、その後真偽判定が行われるため、1回は必ず処理が行われます。
では具体的な記述に関して見ていきましょう。


$number = 0;
do{
    echo $number;
    $number++;
}while($number < 0);

出力結果


0

この例ですと、まずdoブロック内で「0」が出力されます。
その後「$number」がインクリメントされ「1」となます。条件式は「1 < 0」となりfalseが返り、繰り返し処理から抜けます。
この式を通常のwhile文で記述した場合、一度も$numberが出力されることなく終了してしまいますので、「while文」と「do-while文」では、出力結果に明確な違いがあります。
プログラムによって最適な方を選択し、記述しましょう。

最後に

以上がPHPにおける「while文」、「do-while文」の使い方や、注意点などについてのご紹介となります。いかがだったでしょうか?
PHPで繰り返し処理を行いたい場合は、while文の他に「for文」などがあります。
当サイトでもPHPの「for文」について解説している記事がありますので、併せてご覧いただけるとより理解が深まるかと思います。
プログラミング学習は何よりも書くことが大切です。実際にエディターでコードを書いてみて、「while文」の動作を確認して覚えていってください。