トップ > Perl Tips > 繰り返し(while,until,for,foreach)


 ■ 繰り返し(while,until,for,foreach)

これは、条件などによって、繰り返しをするものです。
ものによっては何回繰り返すということが設定できます。



<while>
while (条件式) {実行文}
条件が真の間実行文を繰り返し実行します。

ちなみにこれはどうなるでしょうか。
while (1) {実行文}
条件が1、すなわち真であり続けるため、実行文が無限に繰り返されます。
これが俗に「無限ループ」といわれているものです。
これをやってしまうと、手動で停止させないと
ずっと実行したままになります。くれぐれもご注意ください。



<until>
until (条件式) {実行文}
条件が偽の間実行文を繰り返し実行します。
whileの条件式の真偽を反転した場合と同じ働きになります。


<for>
for (○;条件式;□) {実行文}
○は初期化式といい、$i = 1 のような式が入り、評価されます。
□は増減式といい、++$i のような式が入り、この場合は$iに1加算されます。

初期化式を評価し、条件式をチェックします。
真ならば実行文が実行され、増減式が評価されます。
これを繰り返して、条件式が偽になるまで続きます。
偽になったらループは終了します。

無限ループはこうします。
for (;;) {実行文}

()内に入る式は複数でもかまいません。
半角コンマでつなぎ、それぞれの式の最後でセミコロンをつけます。



<foreach>
foreach スカラー変数($xなどを指定) (配列変数・リスト値) {実行文}
$xの部分はなくてもかまいません。省略時には$_という省略変数が使われます。

配列変数・リスト値から順に要素を取り出し、
スカラー変数に一度代入してから、実行文を実行します。
リスト値がなくなったら終了です。
配列変数・リスト値のすべてに何らかの処理をしたい場合に使います。


また、foreachの内容はforで書き表すこともできます。
foreach (@x) {print;}
for ($i = 0; $i <= $#x; ++$i) {print $x[$i];}
どちらも、配列変数@xの内容をすべて書き出す処理をしています。




トラックバック

このエントリーのトラックバックURL:
http://easycgi.xrea.jp/mt-tb.cgi/57