Perl goto 文
gotoこれは Perl プログラミング言語における制御フロー文の1つで、プログラムの実行を指定されたラベルにジャンプさせることができます。
Perl には3つのgoto形式:goto LABLE、goto EXPR、および goto &NAME:
| 番号 | goto タイプ |
|---|---|
| 1 | goto LABEL LABEL とマークされた文を見つけ、そこから実行を再開します。 |
| 2 | goto EXPR goto EXPR 形式は goto LABEL の一般的な形式にすぎません。式がラベル名を生成することを期待し、そのラベルにジャンプして実行します。 |
| 3 | goto &NAME 実行中のサブルーチンを、名前付きサブルーチンの呼び出しに置き換えます。 |
構文
構文は次のとおりです:
goto LABEL 或 goto EXPR 或 goto &NAME
フローチャート
実例
以下の2つの例では、変数 $a が 15 のときにループを抜けて出力します。
以下は一般的な goto の例です:
実例
#/usr/bin/perl
$a = 10;
LOOP:do
{
if( $a == 15){
# イテレーションをスキップ
$a = $a + 1;
# goto LABEL 形式を使用
print "ジャンプして出力\n";
goto LOOP;
print "この文は実行されません\n";
}
print "a = $a\n";
$a = $a + 1;
}while( $a < 20 );
上記のプログラムを実行すると、出力結果は次のとおりです:
a = 10 a = 11 a = 12 a = 13 a = 14 跳出输出 a = 16 a = 17 a = 18 a = 19
以下の例では goto EXPR 形式を使用しています。2つの文字列を使用し、ドット (.) で連結しています。
実例
$a = 10;
$str1 = "LO";
$str2 = "OP";
LOOP:do
{
if( $a == 15){
# イテレーションをスキップ
$a = $a + 1;
# goto EXPR 形式を使用
goto $str1.$str2; # goto LOOP に類似
}
print "a = $a\n";
$a = $a + 1;
}while( $a < 20 );
上記のプログラムを実行すると、出力結果は次のとおりです:
a = 10 a = 11 a = 12 a = 13 a = 14 a = 16 a = 17 a = 18 a = 19
その他の拡張注意:goto を使用すると、コードが理解しにくく、保守が困難になることが多いため、ほとんどの場合、その使用を避け、構造化された制御フロー文(if、else、while、for など)を使用してコードを書くようにしてください。
Perl ループ