PHP中跳出循环break,continue,return,exit的区别
//----------------------------------------------------------------------------------------------------------------------------------------------------------
PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式:
代码:
复制代码代码如下:
<?php
$i = 1;
while (true) { // 这里看上去这个循环会一直执行
if ($i==2) {// 2跳过不显示
$i++;
continue;
} else if ($i==5) {// 但到这里$i=5就跳出循循环了
break;
} else {
echo $i . '<br>';
}
$i++;
}
exit;
echo '这里不输出';
?>
结果:
1
3
4
continue
continue 是用来用在循环结构中,控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。如果在非循环结构中(例如if语句中,switch语句中)使用continue,程序将会出错。
例如在下面的这段PHP代码片段中:
复制代码代码如下:
<?php
for($i = 1;$i <= 100; $i++ ){
if($i % 3 == 0 || $i % 7 == 0){
continue;
}
& #160; else{
echo”$i \n<br/>”;
}
}
?>
PHP的代码片段的作用是输出100以内,既不能被7整除又不能被3整除的那些自然数,循环中先用if条件语句判断那些能被整除的数,然后执行 continue;语句,就直接进入了下个循环。不会执行下面的输出语句了。
break
break是被用在上面所提的各种循环和switch语句中的。他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环。
看下面这个多重循环嵌套的例子:
复制代码代码如下:
for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo”$m \n<br/>”;
if($m < 90 || $m > 190) {
break 2;
}
}
}
这里使用了break 2跳出了两重循环,你可以试验一眼,将2去掉,得到的结果是完全不一样的。如果不使用参数,跳出的只是本次循环,第一层循环会继续执行下去。
goto
goto实际上只是一个运算符,和其他语言一样,PHP中也不鼓励滥用goto,滥用goto会导致程序的可读性严重下降。goto的作用是将程序的执行从当前位置跳转到其他任意位置,goto本身并没有要结束的循环的作用,但其跳转位置的作用使得其可以作为跳出循环使用。但PHP5.3及以上版本停止了对goto的支持,所以应该尽量避免使用goto。
下面的是一个使用了goto跳出循环的例子
复制代码代码如下:
for($i = 1000;$i >= 1 ; $i– ){
if( sqrt($i) <= 29){
goto a;
}
echo “$i”;
}
a:
echo” this is the end”;
例子中使用了goto来跳出循环,这个例子用来检测1000以内,那些数的平方根大于29。
exit
exit是用来结束程序执行的。可以用在任何地方,本身没有跳出循环的含义。exit可以带一个参数,如果参数是字符串,PHP将会直接把字符串输出,如果参数是integer整形(范围是0-254),那个参数将会被作为结束状态使用。
复制代码代码如下:
<?php
for($i = 1000;$i >= 1 ; $i– ){
if( sqrt($i) >= 29){
echo”$i \n<br/>”;
}
else{
exit;
}
}
echo”本行将不会被输出”;
?>
上面这个例子中直接在从循环里结束了代码的运行,这样会导致后面的代码都不会被执行,如果是在一个php web 页面里面,甚至连exit后面的html代码都不会被输出。
return
return 语句是用来结束一段代码,并返回一个参数的。可以从一个函数里调用,也可以从一个include()或者require()语句包含的文件里来调用,也可以是在主程序里调用,如果是在函数里调用程序将会马上结束运行并返回参数,如果是include()或者require()语句包含的文件中被调用,程序执行将会马上返回到调用该文件的程序,而返回值将作为include()或者require()的返回值。而如果是在主程序中调用,那么主程序将会马上停止执行
复制代码代码如下:
<?php
for($i = 1000;$i >= 1 ; $i– ){
if( sqrt($i) >= 29){
echo”$i \n<br/>”;
}
else{
return;
}
}
echo”本行将不会被输出”;
?>
这里的例子和上面使用exit的效果是一样的。
在循环结束条件,自然跳出
这个当然是最好理解了,当循环满足循环临界条件时就是自己退出。
以上是PHP中跳出循环的几种方式的简单总结。
转载于:https://www.cnblogs.com/wszz/p/9378657.html
PHP中跳出循环break,continue,return,exit的区别相关推荐
- JavaScript 中,break , continue , return 的区别
break , continue , return 的区别 break :结束当前的循环体(如 for.while) continue :跳出本次循环,继续执行下次循环(如 for.while) re ...
- js 中的break continue return
break:跳出整个循环 1.当i=6时,就跳出了整个循环,此for循环就不继续了: continue:跳出当前循环,继续下一次循环: return :指定函数返回值 1.在js当中,常使用retur ...
- 详解C#break ,continue, return
C#编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢?让我 ...
- Break Continue Return( BCR ) 三者的区别
Break是完全结束一个循环,当该循环中出现break,则该循环终止,然后执行该循环之后的代码. package com.etime;public class BCR {public static v ...
- 重学JavaSE 第4章 : 顺序结构、分支语句、循环结构、break, continue, return区别
文章目录 一. 程序流程控概述 二. 顺序结构 三.分支语句 2.1.分支语句1:if-else结构 2.1.1.输入语句 2.2. 分支语句2:switch-case结构 四.循环结构 4.1.fo ...
- java 理解break,continue,return
这是第一次写博客,今天在工作中遇到有关break,return,continue.记录一下我的理解. break: break常用于for循环中判断语句中和switch语句,break只能跳出一层fo ...
- JS中代表结束的三个关键字 break,continue,return
** 逻辑控制作为JS编程的核心,在编码中是最常使用的,那么在使用的过程中一些常见的问题需要使用特定的语句来实现. 我们用的比较多的就是循环语句,在循环语句中,一定会有满足条件或者不满足条件跳出循环的 ...
- Java中 break continue return 的区别
1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: for (int i = 0; i < 10; i++) { i ...
- Java中 break continue return 的用法以及区别
1.return (1)return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2)return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致 ...
最新文章
- 我在兰亭这三年之部门动荡
- 资源 | 《统计学习方法》的Python 3.6复现,实测可用
- golang select关键字用法
- θ Some 与 θ All 子查询
- 反向传播算法(BP)学习笔记
- gin框架-2-返回是html格式的网页数据
- SQL的导入excel数据
- windows多用户远程登录工具 RDPWrap配置
- qq邮箱怎么qq找不到服务器,qq邮箱登录手机版网页 求高手 QQ邮箱登不上去 显示找不到服务器15?请问我咋用不...
- 主板装机测试软件,主板检测工具:PSPident v0.74.1版发布
- nagios的nsca被动模式及自动添加nsca服务
- squirrelSql小松鼠数据库连接工具的安装以及连接informix(系列3,squirrelSql作为客户端连接)
- 家用漏电保护器过流跳闸与漏电跳闸的检查方法
- Select Window关键字——模拟打开了多个页面窗口时,在不同的窗口之间,进行窗口切换...
- Java6 十大新特性
- 莲:什么?朕的大清亡了?
- Oracle并发(CONCURREMT)收集统计信息 (文档 ID 1555451.1)
- 《袁老师访谈录》第十四期|李世玮教授/香港科大(广州)系统枢纽署理院长【问诊未来·院长系列:开辟融合创新科技转化新航路】...
- 知识付费源码|知识付费网站搭建|知识付费小程序源码
- 客快物流大数据项目(九十二):ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解
热门文章
- unbuntu安装google浏览器和谷歌浏览器驱动
- C/C++ 实现二维数组的矩阵相乘和矩阵相加
- 目标检测中的Bounding Box Regression Loss
- 10年后有出息的孩子,现在都在做这件事...
- 笔记本 续航测试软件,软件测试与实际使用续航有差别吗_LG gram_笔记本评测-中关村在线...
- 闫燕飞:Kafka的高性能揭秘及优化
- 计算机显示器图片怎么铺满全屏,显示器没有铺满全屏怎么办
- 电影音频自动剪辑语料
- Bromo-PEG4-N3/Azido-PEG4-Br/1951439-37-4是亲水性交联剂
- CSDN博主 慕羽★ 的附件下载方式总结