前記事『初心者でも分かるif文と比較演算子』にて、プログラムの基本構造は順次・選択・反復であるとお伝えしました。

本記事では、その中の反復について解説します。

while

プログラムにおいて、同じことを何度も繰り返す処理というのは非常によく出てきます。1から順に10までといった単純なものから、実務では1伝票の複数明細行の金額をすべて加算、該当するユーザーレコードすべて抽出、といった具合にバリエーションもさまざまです。

まず最初は、whileをあつかいます。

whileの使いどころ

whileは、ある条件を満たすあいだ実行する、といった場合に使います。このすぐ後にforを解説しますので、forとのちがいを意識してください。

whileの使用例

それでは実際にプログラムを作ってみましょう。以下が基本形です。

言葉で書くと「条件式を満たす間、処理を実行する」となります。具体的に動くプログラムでさらに解説します。

また言葉で書くと「1から10まで、〜行目ですと表示する」となります。結果は以下のとおりです。

whileの中に$i++とあります。これは$iに1を加算するという意味です。インクリメントともいいます。上記のプログラムでは、これがないと$iが増えずに1のままとなり、無限ループになります。

for

forも繰り返し処理をするためのものです。先に触れたとおりwhileとのちがいを見てみましょう。

forの使いどころ

forは繰り返し回数が決まっている場合に使います。明確に1から10まで固定で実行、といった具合です。基本形から見てみましょう。

forの使用例

forの基本形は以下のとおりです。

ちょっとよく分からないですよね。具体例を出しましょう。

言葉で説明しましょう。「1から順に加算しつつ、10と等しいかそれ以下の間〜行目と表示する」となります。結果は先のwhileの実行例と同じです。

応用例

学んだことを応用し、もう少し複雑なプログラムにチャレンジしてみましょう!今度はHTMLフォームを操作するプログラムを作ります。繰り返し処理で、タグを書き出すと考えると分かりやすいでしょうか。

1行ごとに色を変え、10行表示させます。

結果は以下のとおりです。

どうでしょうか?いきなり難しかったでしょうか?

タグに埋め込まれて難しく見えますが、やっていることはそう難しいことではありません。先に述べたことを応用すると十分理解できます。時間をかけて取り組んでみてください。

11〜17行目がfor文のブロックです。変数$iが1から10まで繰り返されます。for文の中身が繰り返される途中、12〜16行目のif文によって処理内容が変わります。「i%2==1」というのは、iを2で割ったら余り1のとき、つまり奇数の場合という意味になります。奇数、つまり1,3,5…行目のときに「class=”color-red”」が付き、赤色になるという動きになります。

if文とは何かを忘れてしまったら、前記事『初心者でも分かるif文と比較演算子』を読み返してください。

まとめ

whileとforのちがいに意識しつつ理解して、最後の応用例もじっくり取り組んでみてください。余裕があったら、応用例をいろいろと変えて結果がどう変わるのかを追うのも勉強になります。

ただし・・・終了条件には十分注意しましょう。変更しすぎて無限ループにならないよう、くれぐれも注意してくださいね!