perl 第14弹 循环控制

Posted 流浪骆驼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 第14弹 循环控制相关的知识,希望对你有一定的参考价值。

记得点击蓝字关注我们哦!


0 1

上期回顾

      上期一起学习了perl的for、foreach、while、until四种循环结构。这次需要和上次的、上上次的结合。


0 2

循环控制

学习开车后就会了解到一个叫油门,一个叫刹车。学习使用好油门刹车才是好的司机。

perl 第14弹 循环控制


记错就会出现,严重情况。


perl 第14弹 循环控制


为了中断循环内正常执行的控制流,Perl提供了一些循环控制标记和简单的控制语句。其中next相当于油门。last相当于刹车。

next  # 跳过循环体进入下一个循环next LABELlast # 退出或者中断循环last LABELcontinue # 在下一次判断循环表达式值之前需要执行的代码块。(不常用)redo #能够重新执行一次循环体,同时不去判断循环表达式的值(不建议使用)redo LABEL goto LABEL # 跳转到标记标注的语句(不建议使用)



(1) next 语句

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 的值为: 2i 的值为: 4i 的值为: 6i 的值为: 8i 的值为: 10


(2)last 语句

        last 语句则负责退出或者中断循环。

my $a = 10; while( $a < 20 ){   if($a == 15){ last; #退出循环 }else{ print "a 的值为: $a
"; $a = $a + 1; }}
__END__(output)a 的值为: 10a 的值为: 11a 的值为: 12a 的值为: 13a 的值为: 14


(3)标记

标记(label)。标记在循环中是可有可无的,但它能用于控制循环流。标记本身不能做任何事情。它必须与后面介绍的循环控制修饰符配合使用。不论是否出现标记,循环代码块都等价于只执行一次的循环体。如果将 标记全部大写,就不会与其他保留字相混淆了。
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 1row is 1, columns is 2row is 1, columns is 3row is 1, columns is 4row is 1, columns is 5row is 2, columns is 1I get it (row is 2, columns is 2)


(4)continue 语句

continue 代码块是在下一次判断循环表达式值之前需要执行的代码块。
@list = (1, 2, 3, 4, 5);foreach $a (@list){ print "a = $a
";}continue{   last if $a == 4# 如果$a等于4, 跳出foreach循环}__END__(output)a = 1a = 2a = 3a = 4



(5) 补充--死循环

# No.1while (1){    # 这里条件为1,意味着条件一直是True,所以会一直循环    # 代码块}
# No.2for(;;){   # 没有判断条件,所以一直满足,一直循环   # 代码块}



0 3

总结

                (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 第14弹 循环控制
END






上期推荐阅读
@






如果perl脚本问题需要解决,欢迎TB扫描二维码咨询。






以上是关于perl 第14弹 循环控制的主要内容,如果未能解决你的问题,请参考以下文章

perl 第13弹 循环

如何知道何时调用了`navController.popBackStack()`?

perl 第12弹 判断结构

perl 第11弹 运算符大汇总

3-Perl 基础语法

perl中的队列