Sentencia Perl goto

Perl 循环Bucles Perl

gotoEs una sentencia de control de flujo en el lenguaje de programación Perl que le permite saltar la ejecución del programa a una etiqueta especificada.

Perl tiene tresgotoformas:goto LABEL, goto EXPR, y goto &NAME:

NúmeroTipo de goto
1goto LABEL

Encuentra la sentencia marcada como LABEL y reanuda la ejecución desde allí.

2goto EXPR

La forma goto EXPR es solo una forma general de goto LABEL. Espera que la expresión genere un nombre de etiqueta y salta a esa etiqueta para ejecutarse.

3goto &NAME

Reemplaza la subrutina que se está ejecutando actualmente por una llamada a una subrutina nombrada.

Sintaxis

El formato de sintaxis es el siguiente:

goto LABEL

o 

goto EXPR

o 

goto &NAME

Diagrama de flujo

Ejemplo

Los siguientes dos ejemplos salen y muestran la salida cuando la variable $a es 15.

El siguiente es un ejemplo común de goto:

Ejemplo

#/usr/bin/perl $a = 10; LOOP:do { if( $a == 15){ # Saltar iteración $a = $a + 1; # Usar la forma goto LABEL print "Saltar y mostrar salida\n"; goto LOOP; print "Esta sentencia no se ejecutará\n"; } print "a = $a\n"; $a = $a + 1; }while( $a < 20 );

Ejecute el programa anterior, el resultado de salida es:

a = 10
a = 11
a = 12
a = 13
a = 14
跳出输出 
a = 16
a = 17
a = 18
a = 19

El siguiente ejemplo utiliza la forma goto EXPR. Usamos dos cadenas y usamos el punto (.) para concatenarlas.

Ejemplo

$a = 10; $str1 = "LO"; $str2 = "OP"; LOOP:do { if( $a == 15){ # Saltar iteración $a = $a + 1; # Usar la forma goto EXPR goto $str1.$str2; # Similar a goto LOOP } print "a = $a\n"; $a = $a + 1; }while( $a < 20 );

Ejecute el programa anterior, el resultado de salida es:

a = 10
a = 11
a = 12
a = 13
a = 14
a = 16
a = 17
a = 18
a = 19

Nota:Usar goto a menudo hace que el código sea difícil de entender y mantener, por lo que en la mayoría de los casos debe evitarse; intente usar sentencias de control de flujo estructuradas (como if, else, while, for, etc.) para escribir código.

Perl 循环Bucles Perl

Otras extensiones