perl 第14弹 循环控制
Posted 流浪骆驼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 第14弹 循环控制相关的知识,希望对你有一定的参考价值。
上期回顾
上期一起学习了perl的for、foreach、while、until四种循环结构。这次需要和上次的、上上次的结合。
循环控制
学习开车后就会了解到一个叫油门,一个叫刹车。学习使用好油门刹车才是好的司机。
记错就会出现,严重情况。
为了中断循环内正常执行的控制流,Perl提供了一些循环控制标记和简单的控制语句。其中next相当于油门。last相当于刹车。
next # 跳过循环体进入下一个循环
next LABEL
last # 退出或者中断循环
last LABEL
continue # 在下一次判断循环表达式值之前需要执行的代码块。(不常用)
redo #能够重新执行一次循环体,同时不去判断循环表达式的值(不建议使用)
redo LABEL
goto LABEL # 跳转到标记标注的语句(不建议使用)
next语句能跳过循环体中的其他语句,直接进入下一次循环,并重新判断循环表达式的值。
# 打印1-10 之间的偶数
for (my $i = 1;$i <= 10;$i++){ # $i初始值为1,条件为小于等于10,增量1
if ($i % 2 == 1) { # % 为取余, $i除以2后的余数
next
}else{
print "i 的值为: $i ";
}
}
__END__
(output)
i 的值为: 2
i 的值为: 4
i 的值为: 6
i 的值为: 8
i 的值为: 10
(2)last 语句
last 语句则负责退出或者中断循环。
my $a = 10;
while( $a < 20 ){
if($a == 15){
last; #退出循环
}else{
print "a 的值为: $a ";
$a = $a + 1;
}
}
__END__
(output)
a 的值为: 10
a 的值为: 11
a 的值为: 12
a 的值为: 13
a 的值为: 14
(3)标记
OUT:for (my $rows=1; $rows<=5; $rows++){
INNER:for (my $columns=1; $columns<=5; $columns++){
if ($rows == 2 and $columns == 2) {
print "I get it (row is 2, columns is 2) ";
last OUT; # 跳出OUT循环
}else{
print "row is $rows, columns is $columns ";
}
}
}
__END__
(output)
row is 1, columns is 1
row is 1, columns is 2
row is 1, columns is 3
row is 1, columns is 4
row is 1, columns is 5
row is 2, columns is 1
I get it (row is 2, columns is 2)
(4)continue 语句
@list = (1, 2, 3, 4, 5);
foreach $a (@list){
print "a = $a ";
}continue{
last if $a == 4; # 如果$a等于4, 跳出foreach循环
}
__END__
(output)
a = 1
a = 2
a = 3
a = 4
(5) 补充--死循环
# No.1
while (1){
# 这里条件为1,意味着条件一直是True,所以会一直循环
# 代码块
}
# No.2
for(;;){
# 没有判断条件,所以一直满足,一直循环
# 代码块
}
总结
(1)perl 的循环控制 next 、last、标记、continue 用法
(2)一般标记全部大写
参考:
redo 语句: https://www.runoob.com/perl/perl-redo-statement.html
goto 语句: https://www.runoob.com/perl/perl-goto-statement.html
如果perl脚本问题需要解决,欢迎TB扫描二维码咨询。
以上是关于perl 第14弹 循环控制的主要内容,如果未能解决你的问题,请参考以下文章