Perl ループ

時には、同じコードブロックを複数回実行する必要があるかもしれません。通常、文は順番に実行されます。関数内の最初の文が実行され、次に2番目の文、というように続きます。

プログラミング言語は、より複雑な実行経路のための複数の制御構造を提供します。

ループ文は、1つの文または文のグループを複数回実行することを可能にします。以下は、ほとんどのプログラミング言語におけるループ文のフローチャートです。

循环结构

注意:数字 0、文字列 '0'、""、空リスト ()、および undef はfalse、その他の値はすべてtrue。true の前に使用! 或 notすると false を返します。

Perl 言語では以下の種類のループが提供されています:

ループの種類説明

while ループ

与えられた条件が true の間、文または文のグループを繰り返し実行します。ループ本体の実行前に条件がテストされます。

until ループ

与えられた条件が true になるまで、文または文のグループを繰り返し実行します。ループ本体の実行前に条件がテストされます。

for ループ

文のシーケンスを複数回実行し、ループ変数を管理するコードを簡素化します。

foreach ループ

foreach ループは、リストまたは集合変数の値を反復処理するために使用されます。

do...while ループ

ループ本体の最後で条件をテストする点を除いて、while 文と似ています。

ネストされたループ

while、for、または do..while ループ内で 1 つ以上のループを使用できます。

ループ制御文

ループ制御文はコードの実行順序を変更し、それによってコードのジャンプを実現できます。

Perl は以下のループ制御文を提供します:

制御文説明

next 文

next 文の次の文からループ本体の終端識別子までの文の実行を停止し、continue 文ブロックを実行してから、ループ本体の開始位置に戻って次のループの実行を開始します。

last 文

ループ文ブロックを抜け出して、ループを終了します。

continue 文

continue 文ブロックは、通常、条件文が再度評価される前に実行されます。

redo 文

redo 文はループ本体の最初の行に直接移動して今回のループを繰り返し実行し、redo 文の後の文は実行されず、continue 文ブロックも実行されません。

goto 文

Perl には 3 つの goto 形式があります: goto LABEL、goto EXPR、goto &NAME です。

無限ループ

条件が決して false にならない場合、ループは無限ループになります。

for ループは、従来の意味で無限ループを実装するために使用できます。

ループを構成する 3 つの式のいずれも必須ではないため、条件式を空のままにして無限ループを構成できます。

例

#!/usr/bin/perl for( ; ; ) { printf "ループは無限に実行されます。\n"; }

Ctrl + C キーを押すとループを終了できます。

条件式が存在しない場合、それは true と見なされます。初期値と増分式を設定することもできますが、一般的に Perl プログラマーは for(;;) 構造を使用して無限ループを表す傾向があります。

その他の拡張