■■■■■■■■■■■■■■■■■■■■
CGI講座・リプレイ
-第12講- 条件による繰返し(1)
■■■■■■■■■■■■■■■■■■■■
■1、同じ処理の繰返し■
プログラムの基礎は「順序」「分岐」「繰返し」の3つであることは
以前にも述べたと思う。
今回はその中の最後のひとつ、「繰返し」について扱う。
何か同じ処理を繰り返したいとき、
例えば同じメッセージを3回表示したいときに
同じ命令文を回数分だけ書いてもできないことは無いが、
繰り返す回数が多いと同じ命令文を書くのが面倒である。
そこで登場するのが繰返しの構文である。
■2、条件を満たすまで繰返し(while)■
繰返しの構文と言えば、まずwhileがあげられる。
基本的な文法は以下のとおり。
while(繰返しの終了条件){処理;}
例:「こんにちは」と3回表示する場合
$count=0;
while($count<3){
print "こんにちは";
$count++;
}
まず最初に繰返しの回数をチェックする変数、
「$count」の初期値を「0」にしている。
次に繰返しの終了条件を「$countが3未満なら繰返し」
としている。
そしてwhile文の中で
・「こんにちは」と表示
・$countの値を1つ増やす
という処理を行っている。
■3、繰返しの危険性■
同じ処理を繰り返すのだから、
いつかは繰返し処理は終了しなくてはならない。
上の繰返し構文では
初期値が0なので、繰返しを行うと$countの値は
以下のように変化する。
1回目開始時・・・$count=0
1回目終了時・・・$count=1
2回目開始時・・・$count=1
2回目終了時・・・$count=2
3回目開始時・・・$count=2
3回目終了時・・・$count=3
このため、終了条件を「$count=3」としてしまうと
不都合が二つ出てくる。
まずは繰返し回数の問題。
初期値が0なので終了条件を「$count=3」にすると
繰り返すかどうかを判断するのは繰返しの開始時なので
4回目の処理に突入してしまう。
もうひとつは繰返し自身についての問題。
確かにこの構文だと$countは1ずつ増えるので
終了条件が「$count=3」でも$countがきっちり3になると
処理を終了する。
しかし、何らかの理由で$countがきっちり3にならなかった場合、
例えば$countが3.1になった場合は
いつまでたっても終了条件を満たさない、ということになる。
そのため、終了条件はたいていの場合
「>」「<」で表現されることが多い。
また、このwhile文だと
繰返しの回数をチェックする変数をWhile文の前、
繰返しの回数をチェックする変数の増加を
while文の中で行っているため、
そそっかしい人だと忘れてしまうことがある。
繰返しをチェックする変数の設定を失敗すると
それは即座に無限ループ、
ひいてはコンピュータのフリーズにつながる危険性もあるため
多くの場合ではこのwhile文よりもfor文の方が使われる。
このfor文については次回に扱うことにしよう。
第13講につづく
---------------------------------------------------------------------
発行人: 塚田 伊助
発行所: 伊助の鍛錬場 http://isukenet.s20.xrea.com/
連絡先: isuke_tukada@hotmail.com
もどる