ループ処理の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サーバーサイドプログラミング入門という講座です。

Udemyへは、下記をクリック

↓↓↓

ウェブ開発の人気オンラインコース

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

 

 

プログラミング・PHP学習

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

【おすすめレンタルサーバー】

「Webアプリを本番環境に反映させたい」

場合には、レンタルサーバーを使うのが手軽です。

わたしはエックスサーバーをメインに使ってます。
早くて安定していて、おすすめです♪



Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました