PHPの代表的なループ処理 while文とfor文

記事公開日:2018.02.14

最終更新日:2018.03.20

692 PV

PHPの代表的なループ処理 while文とfor文

繰り返し、同じ処理を行いたいときに使用するPHPの「ループ(loop)」文。
ループ文の代表的なものとして「while文」と「for文」があります。
今回の記事では、PHP初心者の方に向けて、while文とfor文の解説をしていきます。

while文とは

while文とは、ループ処理を行う回数が決まっていないときに使用するループ文です。
後ほど紹介するfor文とくらべ、使用頻度は少ないですが、PHPのループ文の中で最も簡単なものなので、まずはwhile文からループ処理について学習していくと良いと思います。

while文の書き方

while文の基本の書き方を見ていきましょう。

では、上から順番に細かく解説してきます。

①whileの後ろに「()」を記述。「()」内がループが実行される条件です。「()」内の条件式が成立している、trueの間はループ処理が実行されます。

②「()」に続いて、「{}」の中を見ていきます。
「{}」内には、ループで実行させる処理の内容を書きます。
上記例文では、
「var_dump($ num);
++$ num;」

となっています。
while文の重要なポイントは、「{}」の中には「()」内で使用した数値(変数など)を変更する処理を入れなければいけないということです。

③まず、前半の「var_dump($num)」。「var_dump」は、変数の情報を表示する関数で、あとに続く「()」内を表示させます。

④後半の「++$ num」は、「1度処理を行う度に変数numの値に1を足してください。」という指示です。2を足したい場合は、「$ num + 2」、3を引きたい場合は、「$ num – 3」というように算術演算子を用いて自由に設定できます。
もし、「++$ num」の記述をしなかった場合、変数numは永遠に「0」のまま、「num < 20」が永遠に成立してしまい無限ループに陥ってしまいます。

while文
上記のときは、
ループ処理を途中で抜け出す制御構文「break」が使えます。

break文の書き方

「if (num > 100){
break;
}」
の部分がbreak文です。
上記break文の場合だと、「もし変数numが100より大きな数になったら、ループを抜け出してください。」という指示になります。
「条件分岐if」については、PHPの基本構文その1 条件分岐で説明しておりますので、宜しければご覧ください。

for文とは

for文とは、ループ処理を行う回数が決まっているループ文です。

for文の基本の書き方を見ていきましょう。

「echo $ num;」が10回繰り返して実行されます。(0から数え始め、0~9で10回です)出力結果は下記のようになります。

上から順番に細かく解説してきます。

①forの後ろに「()」を記述。「()」内が、ループが実行される条件です。

②「()」の中を「;」ごとに区切って見ていきます。
「$ num = 0」「$ num < 10」「++$ num」の3つに分けることができます。

for文の書き方

③まず「$ num = 0」ですが、「初期化」と呼ばれる部分です。上記例文の場合「変数numの最初の数値は0です。」と宣言していると考えてください。
重要なのが、初期化処理は、for文が実行される前の初めの1回しか処理が行われないということです。覚えておいてください。

④続いて、「$ num < 10」です。「条件式」と呼ばれる部分で、上記例文の場合「変数numが10以下の場合はループ処理を実行し続けてください。」という指示です。変数numが10以上になった時点で、ループ処理から抜けます。

⑤最後に、「++$ num」です。「更新式」と呼ばれる部分で、上記例文の場合「1度処理を行う度に変数numの値に1を足してください。」という指示です。2を足したい場合は、「$ num + 2」、3を引きたい場合は、「$ num – 3」というように算術演算子を用いて自由に設定できます。
算術演算子がわからない方は、下記リンク先で詳しく解説されていますのでご覧ください。

PHPで算術演算子を使って計算する方法【初心者向け】

for文が実行され続けている限り、更新式も処理され続けます。
以上で「()」内の説明は終わりです。

⑥「()」に続いて、「{}」の中を見ていきます。
「{}」内には、ループで実行させる処理の内容を書きます。上記例文では、「echo $ num;」となっており、重要なのが、先述した「()」で使われている変数「num」をそのまま使用する、という点です。

while文・for文の基本の書き方、見方は理解できたでしょうか。
次の章では、同じループ処理を行うwhile文とfor文の使い分けについて解説していきます。

while文とfor文と違い

while文とfor文の大きな違いは「ループ処理の回数を記述するかしないか」です。
while文はループの回数を記述せず、特定の条件に当てはまった場合にbreakさせる形をとります。breakさせないと無限ループになってしまうので、breakとwhile文はセットで使うと考えた方が良いでしょう。
一方、for文はループの回数を記述し、指定した回数に達したらループを自動で抜け出します。

つまり、

  • 繰り返す数が決まっておらず、特定の条件を満たすまで繰り返す場合→while文
  • 繰り返す数が決まっており、指定の回数まで繰り返す場合→ for文

ということになります。

まとめ

while文とfor文の違いについて、分かっていただけましたでしょうか。
正しく理解して、うまく使い分けられるようになりたいですね。

このエントリーをはてなブックマークに追加