ループ処理のfor文とwhile文の使い方と違い解説【PHP初心者がつまずく文法①】

プログラミング・PHP学習
スポンサーリンク

PHPを学び始めて、まず最初につまづくトラップがループ処理じゃないかと思います。

40代でプログラミング学習スタートした私も、ここで、モヤっとしました。

ループ処理のfor文とwhile文の違いと使い方を解説します。

スポンサーリンク

ループ処理とは

繰り返し処理のことです。

たとえば、下記のように表示したいとします。

すると、このようにコードを書かなきゃいけなくて大変です。

  1. echo “1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>”;

ループ処理を使えば、繰り返しの処理を簡潔に書くことができます。

for構文とwhile構文

PHPのループ処理にはfor構文while構文があります。

(もうひとつ、foreach構文もありますが、これは別の記事で説明します。)

for構文

for構文とは、このような構文

for (初期値; 繰り返す条件; 更新処理)

先ほどの画面をfor構文を使って書くと、こうなります。

  1. for ($i=1; $i<=10; $i++){
  2.  echo $i.‘<br>’;
  3. }

forの後のカッコ内のコードの意味は、こちら。

  • 数字は、変数「$i」を使って表示します。$i は、最初、1としておきます。
  • $iは10以下の数です。
  • $は、ループを繰り返すごとに1個ずつ増やしていきます。

while構文

while構文とは、このような構文
while(繰り返す条件){繰り返したい処理; 更新処理}

先ほどの画面をwhile構文を使うと、こうなります。

  1. $i = 1; while($i <= 10){
  2. echo $i.‘<br>’;
  3. $i = $i+1;
  4. }

for構文と違い、while構文がスタートする前に変数を「$i = 1;」と定義しています。

そのあとのコードの意味は、こちら。

  • $iは10以下の数です。
  • $iを表示させます。
  • そのあと、$iの値を1個ずつ増やしていきます。

私の間違ったコードの書き方

ちなみに私は、最初、こんなふうにコードを書いていました。

  1. $i = 1; while($i <= 10){
  2. $num = $i++;
  3. echo $num.‘<br>’;
  4. }

プログラマの旦那に見せたところ

プログラマの旦那
プログラマの旦那

これは・・・高度な書き方だけど、書き方分かって書いているの?

と、また、イヤミだか本心だか分からないコメントが。

正直、どこかで見た記憶を頼りに書いただけですが、どうやら、「繰り返したい処理」の前に変数をいれるという特殊な書き方をしていたようです。

問題なく動いたので「よっしゃ♪」と思っていましたが、動いたからOKってものではないようで。

旦那によると、

プログラマの旦那
プログラマの旦那

意味が分からずコードを書いていると、おかしなことが起こっても直せないからよくない。

とのこと。

「確かになぁ」と感じたので、本記事でもシェアさせていただきます。

for構文とwhile構文の違い

見てきた通り、for構文とwhile構文は、同じような用途で使えます。

どちらかというと、for構文のほうが短く記述出来て便利ですよね。

ただ、更新処理が長くて複雑な場合、for構文は向きません。

forの後のカッコ部分に複雑なコードを書くと、ごちゃごちゃになります。

そういったときにはwhile構文が良い。

まとめると、次のとおりです。

for構文のほうが簡潔に記述できる
処理が複雑な場合はwhile構文のほうが分かりやすくコードを書ける
結論:両方使えるようにしておいたほうが良い

参考教材のご紹介

私はPaiza(パイザ)、Progate(プロゲート)、PHPに関する本や各種動画を使ってPHPを学んでいます。

今回の説明で一番参考にさせて頂いたのは、Udemyという動画教材のPHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門という講座です。

講師のたにぐち先生はPHPに関する本よくわかるPHPの教科書 【PHP7対応版】 (教科書シリーズ)も出版していて、こちらも分かりやすいです。

 

 

プログラミング・PHP学習

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中!
会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

【個別サポート実施中】

「本ブログに記載の方法を試してみたけれど、うまくいかない」「コードを見てほしい」という方のために、有償でメールサポートいたします。以下のボタンをクリックして相談フォームにアクセスして下さい。

詳しく見る

Twitter始めました。
スポンサーリンク
40代からプログラミング!

コメント

タイトルとURLをコピーしました