場合によっては、同じコード ブロックを複数回実行する必要があるかもしれません。通常、ステートメントは順番に実行されます。関数内の最初のステートメントが最初に実行され、次に 2 番目のステートメントが続きます。
プログラミング言語は、より複雑な実行パスのためのさまざまな制御構造を提供します。
ループ ステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。次に、ほとんどのプログラミング言語におけるループ ステートメントのフローチャートを示します。
数値 0、文字列 '0'、""、空のリスト ()、および undef はfalseで、その他の値はすべてtrueであることに注意してください。 true が! の前に使用された場合、または使用されなかった場合は false が返されます。
Perl 言語では、次のループ タイプが提供されます。
ループタイプ | 説明する |
---|---|
while ループ | 指定された条件が true の場合、ステートメントまたはステートメントのグループを繰り返し実行します。条件はループ本体が実行される前にテストされます。 |
ループまで | 指定された条件が true になるまで、ステートメントまたはステートメントのグループを繰り返し実行します。 条件はループ本体が実行される前にテストされます。 |
for ループ | 一連のステートメントを複数回実行して、ループ変数を管理するコードを簡素化します。 |
foreach ループ | foreach ループは、リストまたはコレクション変数の値を反復処理するために使用されます。 |
do...while ループ | while ステートメントと似ていますが、ループ本体の最後で条件をテストする点が異なります。 |
入れ子になったループ | while、for、または do..while ループ内で 1 つ以上のループを使用できます。 |
ループ制御ステートメントはコードの実行順序を変更し、それによってコード ジャンプを実現できます。
Perl には、次のループ制御ステートメントが用意されています。
制御文 | 説明する |
---|---|
次のステートメント | 次のステートメントの次のステートメントからループ本体の終了識別子までのステートメントの実行を停止し、Continue ステートメントブロックの実行に移行し、ループ本体の先頭に戻って次のループの実行を開始します。 |
最後の声明 | ループ ステートメント ブロックを終了し、ループを終了します。 |
継続ステートメント | continue ステートメント ブロックは通常、条件ステートメントが再度評価される前に実行されます。 |
やり直しステートメント | redo ステートメントはループ本体の最初の行に直接移動し、このループの繰り返し実行を開始します。redo ステートメントの後のステートメントは実行されなくなり、 continue ステートメント ブロックも実行されなくなります。 |
goto ステートメント | Perl には、got LABLE、goto EXPR、goto &NAME の 3 つの形式の goto があります。 |
条件が false にならない場合、ループは無限ループになります。
for ループは、従来の意味で無限ループを実装するために使用できます。
ループを構成する 3 つの式はいずれも必須ではないため、条件式の一部を空白のままにして無限ループを形成できます。
Ctrl + C キーを押すとループを終了できます。
条件式が存在しない場合は true とみなされます。初期値を設定して式を増分することもできますが、一般に、Perl プログラマは無限ループを表すために for(;;) 構造を使用することを好みます。