Perl goto 语句

Perl goto 语句

Perl中的 goto 语句是一个跳转语句,有时也被称为无条件的跳转语句。 goto 语句可以用来从一个函数的任何地方跳到任何地方。
语法

LABEL:
Statement 1;
Statement 2;
.
.
.
.
.
Statement n;
goto LABEL;

在上述语法中, goto 语句将指示编译器立即转到/跳到标记为LABEL的语句。这里标签是一个用户定义的标识符,表示目标语句。紧随 “label: “之后的语句是目标语句。

Perl  goto 语句
Perl中的 goto 语句有三种形式–Label、Expression和Subroutine。

  1. Label: 它将简单地跳到标有LABEL的语句,并从该语句继续执行。
  2. 表达式: 在这种形式下,将有一个表达式在评估后返回一个Label的名字,goto将使它跳转到标记的语句。
  3. 子程序: goto将把编译器从当前运行的子程序转移到给定名称的子程序。

语法

goto LABEL

goto EXPRESSION

goto Subroutine_Name

使用LABEL名称的goto: LABEL名称用于跳转到代码中的一个特定语句,并从该语句开始执行。但它的范围是有限的。它只能在它被调用的范围内工作。

例子

# Perl program to print numbers 
# from 1 to 10 using goto statement 
  
# function to print numbers from 1 to 10 
sub printNumbers() 
{ 
    my n = 1; 
label: 
    print "n "; 
    n++; 
    if (n <= 10) 
    {
        goto label;
    }
} 
    
# Driver Code
printNumbers(); 

输出。

1 2 3 4 5 6 7 8 9 10

使用表达式的goto: 表达式也可以用来给特定的标签一个调用,并将执行控制传递给该标签。这个表达式在传递给 goto 语句时,评估生成一个标签名,并从该标签名定义的语句继续执行。

例子

# Perl program to print numbers 
# from 1 to 10 using the goto statement 
  
# Defining two strings 
# which contain 
# label name in parts
a = "lab";b = "el";
  
# function to print numbers from 1 to 10 
sub printNumbers() 
{ 
    my n = 1; 
label: 
    print "n "; 
    n++; 
    if (n <= 10) 
    {
        # Passing Expression to label name
        goto a.b;
    }
} 
    
# Driver Code
printNumbers(); 

输出。

1 2 3 4 5 6 7 8 9 10

使用子程序的goto: 使用 goto 语句也可以调用一个子程序。这个子程序从另一个子程序中调用,或根据其用途单独调用。它保留了在调用语句旁边要执行的工作。这种方法可以用来递归地调用一个函数,以打印一系列或一系列的字符。

# Perl program to print numbers 
# from 1 to 10 using goto statement 
  
# function to print numbers from 1 to 10 
sub label
{
    print "n ";
    n++;
      
    if(n <= 10)
    {
        goto &label
    }
}
  
# Driver Code
myn = 1;
label(); 

输出。

1 2 3 4 5 6 7 8 9 10

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程