Оператор goto в Perl

Perl 循环Циклы Perl

gotoЭто оператор управления потоком в языке программирования Perl, который позволяет передать выполнение программы на указанную метку.

В Perl есть три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

Блок-схема

Пример

Следующие два примера пропускают вывод, когда переменная $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. Мы использовали две строки и объединили их оператором точки (.).

Пример

$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

Другие расширения