博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php continue break 用例
阅读量:6847 次
发布时间:2019-06-26

本文共 1145 字,大约阅读时间需要 3 分钟。

导读

PHP的continue一般在循环中直接跳过后续的代码,直接进入下一次循环,break用来跳出循环,或者在switch的时候在某个case执行完后跳出,防止执行后续其他的case.

在continue和break后面还可以带数字,实际上没带数字的时候有一个默认值,1,如果带了数字n,那么continue的话就表示跳过n层循环(注意,是),如果是break的话,就表示终止n层循环.

验证

在php的官网上,有这么一段验证代码:

 

'; }

在xxxx的地方依次填入break,break 2, continue 和continue2,看看是什么结果

结果

结果依次是:

break 1 [0] zero <0>  [1] one <1>  [2] two <2>break 2 [0] zero <0>  [1] onecontinue 1 [0] zero <0>  [1] one <1>  [2] two <2>continue 2 [0] zero <0>  [1] one [2] two <2>

解析

  1. 当 XXXX 为 break 1

    break的时候,很容易看出结果,依次循环,在对应的case执行完毕后跳出switch.

  2. 当 XXXX 为 break 2

    第一次循环正常进行,当进入循环的第二次时,进入case 1,在执行break 2后, 终止两层循环,第一层的switch虽然不是循环,但被break直接终止,第二次的break就作用于上一层的for循环了,在for循环中break,就终止循环了,所以最终的结果只循环了两次,而且第二次最后面的$i(值为1)也没能输出

  3. 当 XXXX 为 continue 1

    continue时,让我们疑惑的是在switch中的continue表示什么,结果表明,switch中的continue 1break 1 一个效果,执行了continue 1就直接终止后续的case判断执行了. 

  4. 当 XXXX 为 continue 2

    第二次循环执行了case 1, 在echo "one"后,continue 2首先是终止后续的case,然后对外层for作用了continue, 所以就直接进入了下一次循环,完成了case2的输出.

注意

那么假如在n层循环中执行了break m(m>n)或者continue m(m>n)时,会是怎么样的呢,比如单层循环体中执行了break 2或者continue 2

在这里还是要强调,breakcontinue作用的是循环体的层数(switch算一层),如果这样执行的话,会直接抛出一个fatal error, 提示break或者continue超出层数了.

转载地址:http://rlpul.baihongyu.com/

你可能感兴趣的文章
【CSS】【12】CSS盒子的display属性
查看>>
linux下配置tomcat、resin
查看>>
oracle命令历史记录工具(rlwrap)
查看>>
CentOS提示 -bash: patch: command not found 解决办法
查看>>
分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)
查看>>
老男孩linux技术沙龙交流活动视频分享(下)
查看>>
Windows事件日志写入SQL Server并PowerBI统计分析
查看>>
linux运维人员的成功面试总结案例分享
查看>>
iPad用户使用Mac和Windows应用软件-记Parallels Access使用体验
查看>>
.NET简谈组件程序设计之(初识NetRemoting)
查看>>
windows process activation service不能安装或启动的解决办法
查看>>
SCCM 2012 SP1系列(五)安装客户端
查看>>
Gartner:2012年应用安全Hype Cycle
查看>>
Android应用程序消息处理机制(Looper、Handler)分析(6)
查看>>
《统一沟通-微软-培训》-2-部署-反向代理-2-配置初始的部署设置
查看>>
2013年6月工作小结-- 再论需求与设计,别总去跑马拉松
查看>>
如何更有效使用 Rational AppScan 扫描
查看>>
Oracle下sqlplus无法使用命令退格删除和历史记录的解决方法--使用rlwrap
查看>>
Centos 5.5 上面Wordpress平台搭建
查看>>
Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
查看>>