同じ事を繰り返す(ループ処理)を知れば面倒な処理も簡単になる|初心者にもわかるPHP入門(7)

スポンサーリンク




第6回では、「if文」と「switch文」を紹介して、その2つの構文の違いや書き方と使い方のお話をしてきました。
少しおさらいをしますと、変数の中身が同じであるのか違うのかを演算子を用いて比較をして、表示するものを変えたり、計算結果を変えたりできるのが「if文」や「switch文」でした。
その違いは、明確なルールはありませんが条件分岐が少ない場合は「if」をそうではない場合は「switch」を使う方が処理のスピードなどを考えるとよいとされています。
ただ、その場に応じて適切だと思われるものを使用するようにした方がいいと思います。

ここまでが前回お話しをした事ですが、もしまだ見ていないという方は

if文とswitch文で条件分岐をしてみよう|初心者にもわかるPHP入門(6)
PHPの配列ってどんなもの?どうやって作るの?|初心者にもわかるPHP入門(5)
PHPの演算子って何のこと?初心者にもわかるPHP入門(4)
PHPの変数って何??初心者にもわかるPHP入門(3)
PHPで何ができるの??初心者にもわかるPHP入門(2)
PHPって何?初心者にもわかるPHP入門(1)

是非見てみてください。

そして今回は、またまた新しい構文のご紹介をしたいと思います。
少しずつプログラムに慣れてくると、何回も同じことを書く必要性が出てきた場合に同じ事を何回も書くのが面倒くさいと思われる事はありませんか?
例えば前回出てきた「if」文で例をあげてみますと

敢えて極端な書き方をしてみましたが、実際にこのような書き方をしてしまうととても見にくくなるのもありますがとても効率が悪いですよね?
もしも、このような書き方をしているとしたらこれだけ書くための時間と労力を無駄使いしています。
そこで今回はループ処理を行う「for文」と「while文」を覚えて効率のよいPHPプログラムを書けるようにしたいと思います。

繰り返し処理を行う「for文」と「while文」

上記で挙げた例文を効率よく簡単にするには、繰り返しを行う「for文」や「while文」を使用する事で可能となります。

「for文」の書き方

「for」の書式は、以下のように書きます。

for(カウンタの初期値; 条件式; 増減式){

実際に行われる処理

}

カウンタの初期値はfor文の処理が開始される時に一度だけ実行され、通常は条件式の中で使用される変数などの初期化を行う式を記述します。
条件式はifなどで用いた比較演算子を使用して判定を行うために記述します。
この条件式が真(TRUE)であるなら中身を実行して、偽(FALSE)であれば実行を終了します。
そして、増減式には繰り返しが1回起こるたびに変化をさせるために使用します。

難しい説明になってしまいましたが、具体的な例を挙げて書いてみると分かりやすいと思いますので実際に簡単な例文を書いてみます。

上記の例文に先ほどの説明を当てはめてみると、$=0が初期値となり、$iに0を代入しています。つまり0から始めるという意味になります。
そして、$i<10;は条件式でこの場合は$iが10より小さければという意味になります。 その次の$i++は増減式で繰り返しが1回起こるたびに$iの値を1つずつ増加させていきます。 ですので、このように書くと$iが0から1づつ増えていき、$iが9になるまで$iの中身を表示するということになります。 これを、for文を使用せずに書くとなると、似たような文を何度も書くことになり非常に効率が悪くなってしまいますが、for文で書く事で非常に簡単になります。 このfor文を使って、最初に挙げた極端に効率の悪い書き方をした例文を書きなおしてみます。 以下の例文を書いて、ブラウザで実行してみてください。

先ほどの例文と比べてみると、非常に簡潔に効率よく同じ結果を導き出せていると思います。 $aには10をあらかじめ入れておき、forで$iを0から今回の場合は<=ですので10より小さいか10になるまでループするという文になります。また実行する処理には、if文で$aと$iを比較評価して同じであれば、$aの中身を表示するというプログラムになります。 このように、とても効率よく書けるfor文ですが、一つ注意が必要なのが永遠に条件に終わりがないようなプログラムを書いてしまうと無限ループとなってしまい、非常に処理に負担がかかるばかりかブラウザがクラッシュしてしまいますので書く際には無限ループにならないように注意して書く必要があります。

「while文」の書き方

for文と同様な繰り返し処理を行う構文は他にもあります。その一つが「while文」です。
こちらも、条件比較をして条件がTRUEの間、中身を実行するというような使い方をする構文になります。
この「for文」と「while文」の違いは、どれだけの回数ループをさせるかが決まっている場合は「for文」を使用し、明確に決まっていない場合は、「while文」を使用します。

「while文」書式は次のように書きます。

while(条件式){
何かを実行する文
増減式;
}

条件式がTRUEの間、実行し続けるという構文になります。
これもfor文と同様に例文を書いてみましょう。

こちらも先ほどと同様に、予め$aに10を$iに0を入れておき、一回処理が行われるたびに$iを一つずつ増加させていきます。
実行する中身はfor文と同様です。
こうして書くことにより、同様の結果が表示されます。

まとめ

このように、同様な処理をするという場合でも書き方は様々ありますが、なるべく同じようなものを何度も書かないようにして、効率よく書くことによって、あとでプログラムを見返したときに見やすくなるような書き方を学んでおく事もとても大切な事だと思います。まだまだこれからいろいろな構文がでてきますが、プログラムを書くときは効率よく簡潔にかけるようになるためにも何度も書いて試してみる事を是非やってみてください。

スポンサーリンク



Google Analyticsアクセス解析レポート

記事をシェアお願いします