これまで、for文とwhile文について書いてきました。
どちらも繰返しを表す構文で、基本的にはどちらを使っても
同じような処理を行えることがわかって頂けたと思います。
ここで、どのように使い分けたらいいのか?という疑問が湧くと
思います。
正直、明確な使い分け方は無いと思うのですが、ここでは
わかりやすく(デフォルメして)書いていきたいと思います。
上図に書いたとおり、forとwhileの使い分けの一番大きな判断軸は
「繰り返す回数があらかじめわかっているかどうか」
ということになります。
少しわかりづらいと思いますので、具体的な例を挙げてみましょう。
例えば、あなたは今、レシピを見ながらカレーを作っているとしましょう。
煮込み時間についてこのように記述されていたとしましょう。
「30分間煮込んで下さい」
これは30分間と繰り返す(≒待ち時間)があらかじめ決まっていますのでfor文
(の方が良さそう、ぐらいです)となります。
<?php for($i = 0; $i < 30; $i++){ //30分待つ //待つ } echo "出来上がり!";
プログラムにするとこんなイメージになります。
一方、レシピがこんな風に書いてあったとします。
「串をにんじんに刺してスッと入ったら大丈夫です」
これは先程と違って明確な時間がわかりません。
にんじんの切り方とかによって変わってきそうです。
<?php while(true){ //無限に繰り返せ if(串をにんじんに刺してスッと入ったら){ break; //繰返しの強制終了 } //待つ }
プログラムにするとこんなイメージになります。
while(true)や、breakについては次回に書きますが、
無限に待つ前提で、串をにんじんに刺してスッと入ったら
火を止めるようなイメージです。
このように時間や回数がわからず、特定のタイミングで
終了するような場合はwhileを使う方がよいと思います。
料理の煮込み時間を例としてforとwhileの使い分けについて
書いてきましたが、いかがでしたでしょうか。