Perl goto 语句
Perl 确实支持 goto 语句。 共有三种形式:goto LABEL、goto EXPR、goto &NAME。
序号 | goto 类型 |
---|---|
1 | goto LABEL goto LABEL 表单跳转到标有 LABEL 的语句并从那里恢复执行。 |
2 | goto EXPR goto EXPR 形式只是 goto LABEL 的概括。 它期望表达式返回一个标签名称,然后跳转到该标签语句。 |
3 | goto &NAME 它用对指定子例程的调用代替当前运行的子例程。 |
语法
goto 语句的语法如下 −
goto LABEL or goto EXPR or goto &NAME
流程图
示例
以下程序显示了最常用的 goto 语句形式 −
#/usr/local/bin/perl $a = 10; LOOP:do { if( $a == 15) { # skip the iteration. $a = $a + 1; # use goto LABEL form goto LOOP; } print "Value of a = $a\n"; $a = $a + 1; } while( $a < 20 );
当上面的代码被执行时,它会产生下面的结果 −
Value of a = 10 Value of a = 11 Value of a = 12 Value of a = 13 Value of a = 14 Value of a = 16 Value of a = 17 Value of a = 18 Value of a = 19
以下示例显示了 goto EXPR 表单的用法。 这里我们使用两个字符串,然后使用字符串连接运算符 (.) 将它们连接起来。 最后,它形成一个标签,并使用goto跳转到标签 −
#/usr/local/bin/perl $a = 10; $str1 = "LO"; $str2 = "OP"; LOOP:do { if( $a == 15) { # skip the iteration. $a = $a + 1; # use goto EXPR form goto $str1.$str2; } print "Value of a = $a\n"; $a = $a + 1; } while( $a < 20 );
当上面的代码被执行时,它会产生下面的结果 −
Value of a = 10 Value of a = 11 Value of a = 12 Value of a = 13 Value of a = 14 Value of a = 16 Value of a = 17 Value of a = 18 Value of a = 19