Оператор redo в Perl

Perl 循环Циклы Perl

Оператор redo в Perl напрямую переходит к первой строке тела цикла и начинает повторять эту итерацию. Операторы после оператора redo больше не выполняются, и блок оператора continue также больше не выполняется.

Оператор continue можно использовать в циклах while и foreach.

Синтаксис

Формат синтаксиса следующий:

redo [LABEL]

Где LABEL необязателен.

Оператор redo с модификатором метки LABEL означает передачу управления циклом непосредственно на первую строку блока операторов, связанного с модификатором метки LABEL, для начала выполнения, и больше не выполнять операторы после оператора redo и блок операторов continue;

Оператор redo без модификатора метки LABEL означает передачу управления циклом непосредственно на первую строку текущего блока операторов для начала выполнения, и больше не выполнять операторы после оператора redo и блок операторов continue;

Если он находится в цикле for или имеет блок операторов continue, список приращений в цикле for и блок операторов continue больше не выполняются;

Блок-схема

Пример

#/usr/bin/perl $a = 0; while($a < 10){ if( $a == 5 ){ $a = $a + 1; redo; } print "a = $a\n"; }continue{ $a = $a + 1; }

При выполнении вышеуказанной программы вывод будет:

a = 0
a = 1
a = 2
a = 3
a = 4
a = 6
a = 7
a = 8
a = 9

Perl 循环Циклы Perl

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