Perl goto 文

Perl 循环Perl ループ

gotoこれは Perl プログラミング言語における制御フロー文の1つで、プログラムの実行を指定されたラベルにジャンプさせることができます。

Perl には3つのgoto形式:goto LABLE、goto EXPR、および goto &NAME:

番号goto タイプ
1goto LABEL

LABEL とマークされた文を見つけ、そこから実行を再開します。

2goto EXPR

goto EXPR 形式は goto LABEL の一般的な形式にすぎません。式がラベル名を生成することを期待し、そのラベルにジャンプして実行します。

3goto &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 循环Perl ループ

その他の拡張