Perl redo 语句直接转到循环体的第一行开始重复执行本次循环,redo语句之后的语句不再执行,continue语句块也不再执行。
continue 语句可用在 while 和 foreach 循环中。
语法
语法格式如下所示:
redo [LABEL]
其中 LABEL 是可选的。
带标号修饰符LABEL的redo语句表示把循环控制流程直接转到与标号修饰符LABEL相关联的语句块的第一行处开始执行,而不再执行redo语句之后的语句和continue语句块;
不带标号修饰符LABEL的redo语句表示把循环控制流程直接转到当前语句块的第一行处开始执行,而不再执行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 = 0a = 1a = 2a = 3a = 4a = 6a = 7a = 8a = 9