■■■■■■■■■■■■■■■■■■■■

			 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
もどる