Pages

Subscribe:

2011-09-06

PHPの基礎~繰り返し2(for構文その2)

前回に続き、今回もfor文についてまとめます。

前回は構造の話でほとんど終わってしまったので、今回はもう少し使い方の
バリエーションを紹介したいと思います。
あと、最初にfor文を教わったときに自分が理解しづらかった部分も書いてみるので
参考にしていただけたら幸いです。


増減式をデクリメントさせる

前回記事では初期値に設定した「$i = 1」を「$i++」という増減式で1ずつ増やしていく
例を挙げましたが、その逆もできます。





 


初期値を「10」に設定し、条件式で「$i >= 1」として、
増減式を「$i--」(1ずつ減っていく:デクリメント)とすることで、
10から1まで1ずつ減らされた数字をそれぞれ表示させることができます。

慣れないうちは「<」「>」の向きで迷うかも知れません。
この方向が違うせいでうまく動かないことがあるので、
エラーが出てしまったらここも確認してみるといいと思います。

式の書き方を変えてみる

これまでインクリメント・デクリメントを使った増減式を書いていましたが、
初期値から2ずつ増やしていきたいという場合などは
増減式を「$i = $i + 2」という形で書くことができます。
例えば1から10の数字の中で偶数だけ表示させたい
というようなときに使います。








この場合、初期値を「1」にしていると
それに「+2」されていくので意図に反した表示になってしまいます。
そのため初期値を「2」にすることで「1~10の間の偶数のみ」を
表示することができます。

同じ変数を繰り返し表示する

前回記事でfor文の壁になりそうな部分について書きましたが、
これはもうひとつの自分が理解しづらかったことです。

今まで例文で「$i」を繰り返す指定をし、それを表示させていましたが
本来for文というのは表示させることが目的ではなく、
「繰り返すこと」が目的です。
forの後に続く「( )」の中に入る式たちは、
あくまでも繰り返しを指定しているだけということです。
言葉で表現するのが難しいですが、実際に書いてみます。

for文が始まる前に「$a = 1」を定義し、
「10回繰り返すための」for文を作ります。
この場合初期値「0」が1回目になるので、条件式を「$i < 10」として
最大値を「9」にすることで10回にしています。
そして処理部分に定義しておいた「echo $a.'/';」を書いてみます。

ブラウザで確認すると「1」が10回分表示されました。
これは「1」を代入した「$a」を表示することを10回繰り返したことになり、
これまで「$i」を表示させていた文とは少し意味合いが異なることが
分かると思います。

「$i」を処理の中で表示させるfor文の場合、
初期値と最初に表示される値が同じで、条件式でどこまでを指定していたのに対し、
この例は純粋に「$a」を何回繰り返すのかを指定しているので
初期値と条件式の間の数が「10」であれば良いということになります。

基本的には初期値は「0」とすることが多いようですが、
5回繰り返したいときに初期値を「$i = 5」、条件式を「$i < 10」とやっても
間違いではないというわけです。

最初は違いが分からずとても混乱したので、
初めから区別して考えられると理解が早いのではないかと思います。

ちなみにこの例と同じ方法で先ほどの「1~10の間の偶数のみ」を表示する
というのをやってみると、以下のようになります。










for文はこれまでの内容に比べるとぐっと難しくなっているような気がします。
ひとつひとつは理解できるのですが、
積み重なるとなんだか良く分からなくなってしまうという不思議…
私はプログラムの考え方が独特だと感じていて、
自分の力で答えにたどり着けないことが多いで
そういう部分を少しずつでも鍛えていきたいものです。

0 件のコメント:

コメントを投稿