![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> 処理の制御2
■ 繰り返し処理の種類
繰り返し(ループ)処理の方法は大きく分けて3つあります。 1.特定の条件を満たす場合(真の場合)、または条件を満たすまでループ処理を行なう。行ないたい処理の内容によって、使い分けると良いでしょう。 (foreach 構文に関しては、次章の 「配列の処理」 でご紹介します。) ■ while を使った繰り返し処理
「while」 では、特定の条件が満たされた場合のみの繰り返し処理を行なうことが出来ます。 「while」 を使った繰り返し処理の書式は下記のようになります。 while (条件式) { 処理内容 }「while」 文でも、「if」 文と同様に真偽値を使った条件式を用いることが出来ます。
下記のプログラムでは、「exit」 と入力するまでプログラムが終了せずにメッセージ「こんにちは!」 を表示しつづけます。
「last」 ではループの終了を行ないます。→ 処理の制御構文 ■ until を使った繰り返し処理
「until」 では、ある条件が満たされるまで繰り返し処理を行ないます。 「until」 の書式は下記のようになります。 until (条件式) { 処理内容 }「while」 の項でご紹介したプログラムは、「until」 を使うことでよりシンプルなソースになります。
* ここでは、入力された文字と 「\n (改行文字)」 付きの 「exit」 をマッチさせています。 文字を入力した後には必ず 「ENTER」キーを押す為、データとして改行文字もいっしょに送られてきます。 そのため、「exit\n」 となっています。 ■ 決まった回数の繰り返し処理を行なう(for を使った繰り返し処理)
「for」 は、決まった回数の繰り返し処理をする場合に便利です。 「for 文」 の書式は下記のようになります。 for (初期値 ; 条件式 ; 増減式) { 処理内容 }「for」 構文ではループ変数を設定し、その変数の増減によってループ回数を決定します。 下記のプログラムでは1〜5までの数字を「for」 構文を使って表示させています。
for ( $i=1; $i<=5; $i++) {
ここでは、ループ変数 $i の初期値を1と設定し、$i の値が5になるまで処理を繰り返しています。print $i; } 【表示結果】 1 2 3 4 5 「$i++」 は、「$i = $i + 1」 と同義です。1回処理を行なうごとに、$i に1たして次のループに移行します。 ■ 無限ループについて
ループ処理において下記のような場合には、条件式の部分が常に「真」 となり、ループが終了しない(無限ループ) の状態となります。 CGIの設置場所に、レンタルサーバーなどの共用サーバーを使っている場合には、サーバーのメモリやCPUを占有するなどかなりの負担をかけてしまいます。 特に、「while」 構文を使った際に、終了の条件を設定していないとループが終了しない場合がよくあります。 ループ処理を行なう場合には、終了の条件に注意してプログラムを作成しましょう。 [while での無限ループの例]
while ( 1 ) {
「こんにちは!」 が延々と表示されつづけます。print "こんにちは!"; } あいさつは1回でよろしい! [for での無限ループの例1]
for ( ; ; ) {
カッコ内の条件式の部分が常に真となる為、終了しません。
print "こんにちは!"; } [for での無限ループの例2]
for ( $i=0; $i<0; $i++ ) {
このプログラムでは、初期値を0に設定してループごとに1足していっているのですがprint $i; } 終了の条件が 「0未満になった場合」 となっています。 0から1づつ足していってるので、「0未満」 となるはずもなく、0からの数字が延々と表示され続けます。
|
|||||||||||||||||||||||||||||||||||||||||||||