加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl-11---循环修饰符

发布时间:2020-12-15 23:51:23 所属栏目:大数据 来源:网络整理
导读:http://bdxnote.blog.163.com/blog/static/844423520083183751732/ 在编写程序的过程中,常常要用到嵌套的循环结构,有时侯需要使用一种手段来中断它;Perl提供了以下四个循环修饰符:continue、next、last、redo; 1、continue语句块 : for循环的递增列表

http://bdxnote.blog.163.com/blog/static/844423520083183751732/


在编写程序的过程中,常常要用到嵌套的循环结构,有时侯需要使用一种手段来中断它;Perl提供了以下四个循环修饰符:continue、next、last、redo;

1、continue语句块

for循环的递增列表是在循环体之后执行的,continue语句块在功能上等价于循环的递增列表;在while循环、until循环和foreach循环中可以加入continue语句块:

◆?while循环

????while(条件表达式)

?? ?{

???? ?? #while循环体

?? ?}

????continue

???? ?? #continue程序块;可以执行while循环的递增列表,操作while循环的循环控制变量;

?? }

◆?until循环

??? until(条件表达式)

??? {

???? ?? #until循环体

??? }

?? ?continue

??? ???#continue程序代码块;

◆?foreach循环

????foreach? SCALAR? (LIST)

????? ?#foreach循环体

由于continue语句块式另外一种实现递增列表的方式,所以,for循环中不能有continue语句块;下面的写法式错误的,而且有语法错误:

for(表达式1;表达式2;表达式3)

{

??? #for循环体

}

continue

??? #continue语句块

在同一个时刻使用continue语句块和next、last以及redo修饰符时,遵循以下规则:

?next 循环修饰符停止执行从next语句的下一语句开始到循环体结束标识符之间的语句,转去执行continue语句块,然后再返回到循环体的起始处开始执行下一次循环;

?last 循环修饰符彻底退出其所在的循环语句块,从而结束循环,last语句之后的语句不再执行,continue语句块也不再执行;

?redo 循环修饰符直接转到循环体的第一行开始重复执行本次循环,redo语句之后的语句不再执行,continue语句块也不再执行;

2、 last 语句:

last 语句可以带标号修饰符,也可以不带标号修饰符;如:last ;或 last LABEL;

带标号修饰符LABEL的 last 语句表示退出与标号修饰符LABEL相关联的语句块;不带标号修饰符的last语句表示退出last语句所在的当前语句块;如果是在for循环中或者是带有continue语句块,则for循环中的递增列表或continue语句块都不再被执行;

3、redo 语句:

redo 语句可以带标号修饰符,也可以不带标号修饰符;如: redo ;或 redo LABEL;

带标号修饰符LABEL的redo语句表示把循环控制流程直接转到与标号修饰符LABEL相关联的语句块的第一行处开始执行,而不再执行redo语句之后的语句和continue语句块;不带标号修饰符LABEL的redo语句表示把循环控制流程直接转到当前语句块的第一行处开始执行,而不再执行redo语句之后的语句和continue语句块;如果是在for循环中或者是带有continue语句块,则for循环中的递增列表和continue语句块都不再被执行;

4、next 语句:

last和redo循环修饰符可以用于空语句块,而next语句只能用于循环体;next语句表示停止执行next语句之后的语句,转去执行continue语句块,最后再转到循环体的第一行处开始执行;next可以带标号修饰符,也可以不带标号修饰符;如:next ;或 next LABEL;

不带标号修饰符的next语句将循环控制流程转到当前循环的第一行处开始执行;带标号修饰符的next语句则退出与标号修饰符相关联的循环;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读