while を使った繰り返し処理 |
条件の間、繰り返し何らかの処理をしたいときループを使います。
ここでは while を使って繰り返し処理を行ってみます。
下の例では変数 $a に初期値 0 を与え、 $a が 10より小さい間処理を繰り返します。
そして最後に 終了しました。 の文字列を表示しています。
実行結果 |
繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理
繰り返し処理
終了しました。 |
上記の例で終了の条件を 変数 $a が 10より小さい間処理を繰り返すようになっており、
print "繰り返し処理<BR>"; の後で変数 $a を 1づつ加算しています。
この加算が無かったらどうなるでしょうか?
変数 $a は永遠に 0 のままで、終了条件の 10 を超える事が無い為、無限ループとなります。
無限ループを作ってしまうと、終了させない限りサーバはこの処理を永遠に続ける事となってしまい、
異常な負荷をサーバに掛けてしまう事になりますので非常に注意しなければなりません。
繰り返し処理を行う際は、必ず終了できる条件を設定しなくてはなりません。
|
繰り返し処理を途中何かをする |
繰り返し処理を行っている途中で、終了条件に設定した条件以外の方法で抜けたり、
何らかの処理を行ってみます。
下の例では last (繰り返し処理を抜ける) を使って $a が 5 になった時点で終了させています。
実行結果 |
繰り返し処理 繰り返し処理 繰り返し処理 繰り返し処理
繰り返し処理
終了しました。 |
繰り返し処理自体に設定された終了条件は $a が 10 になるまでですので、10回文字列を
表示するはずですが、途中で last を使い、 $a が 5 になったら終了と指示してますので、
文字列を 5回表示した時点で繰り返し処理は終了しています。
条件は if の他に elsif なども利用できるほか、中で別の繰り返し処理をする事もできます。
繰り返し処理は途中で終了していますが、プログラム自体は終了しないので、
5回表示した後、その後の処理 終了しました。 を表示しています。
|
ファイルを読み込んで繰り返し処理をする (ファイルハンドルを条件に) |
ファイルハンドルを条件に指定することもできます
下の例では、 test.txt を読み込み、ファイルハンドル <IN> の間、その内容を繰り返し
表示しています。
条件にファイルハンドルを指定すると、ファイルハンドルの内容がある間繰り返します。
|
|
|
関連項目
・ CGIの作成に関する用語
・ CGI作成に関するFAQ
|