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中跳出循环的几种方式的简单总结。

php循环跳出的更多相关文章

  1. 从a-zA-Z0-9特殊字符中生成指定数量的随机字符密码的多层for循环跳出

    师从‘百测’besttest 今日牛老师布置了一个作业,生成一个随机密码,且要包含大写字母.小写字母.数字和特殊字符,且不能重复. 想着先生成密码,然后用各字符去检查是否存在,使用for嵌套循环. i ...

  2. 关于python如何简单跳出多层循环

    上述代码的逻辑是,在跳出子循环之前定义一个变量flag为Ture,第一层循环跳出之后,如果要跳出第二个循环,直接调用变量flag,可以直接跳出第二层循环.这里要注意的是缩进,不然会出错误. 如果是多层 ...

  3. java 中通过label跳出双重for 循环

    java 中如何跳出双重for 循环 java跳出循环是使用break语句的,break默认跳出当前循环(包括for循环.while循环),当使用双层循环时,可通过label从内层循环跳出.有关对比的 ...

  4. js for等循环 跳出多层循环

    js for 循环 跳出多层循环 ,,,,,,,]; // 8个数 ,,,,,,,]; //8个数 testFor(); console.log(') function testFor() { ;k& ...

  5. python(3)- 循环语句:从最内层跳出多层循环

    跳出多层循环:三层循环,最里层直接跳出3层 方法一: 在Python中,函数运行到return这一句就会停止,因此可以利用这一特性,将功能写成函数,终止多重循环 def work(): #定义函数 f ...

  6. 失去循环标记的Python,我这样实现跳出外层循环

    不完美的Python 自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊-但python有些细节上缺少其他语言的便利.今天我们就来举几个例子. 跳出外层循环 大 ...

  7. 失去循环标签的Python,我这样实现跳出外层循环

    不完美的Python 自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊-但python有些细节上缺少其他语言的便利.今天我们就来举几个例子. 跳出外层循环 大 ...

  8. C语言 第六章 多重循环

    一.概要 在c语言中,if,switch,for,while,do-while可以相互间多次嵌套. if(){ for() { for() { } } } while() { for(){ } for ...

  9. JS-用js的for循环实现九九乘法表以及其他算数题等

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>f ...

随机推荐

  1. IOS7升级攻略

    1) Select the main view, set the background color to black (or whatever color you want the status ba ...

  2. 图像处理中创建CDib类时无法选择基类类型时怎么办

    图像处理中创建CDib类时无法选择基类类型时怎么办? 类的类型选择Generic Class 在下面的篮筐里输入CObject就行了

  3. Js—innerHTML和innerText的区别

    1.innerHTML属性和innerText属性 都是对元素的一个操作,简单讲,innerHTML可以在某种特定环境下重构某个元素节点的DOM结构,innerText只能修改文本值 在JavaScr ...

  4. 使用Oracle函数在创建表的时候自动加入生成的流水号 生成格式是:前缀+年月日+00000

    CREATE OR REPLACE FUNCTION fn_no_make(v_type VARCHAR2, v_number_col VARCHAR2, v_table_name VARCHAR2) ...

  5. JavaScript进阶----关于数字的方法,Math对象,日期对象,定时器,函数,for in

    关于数字的方法: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. 清北学堂模拟赛d2t4 最大值(max)

    题目描述LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目:这里有一个长度为n的正整数数列ai(下标为1~n).并且有一个参数k.你需要找两个正整数x,y,使得x+k<=y, ...

  7. Postgres 数据库字符集更改 ERROR: new encoding (UTF8) is incompatible

    https://blog.csdn.net/hkyw000/article/details/52817422 http://www.cnblogs.com/taosim/articles/438329 ...

  8. Windows安装php Oracle扩展

    前言 去IOE的浪潮下,很多大型公司古董级的系统还在使用IOE设备.新东家有些年头的系统都是使用Oracle数据库,为了省事,新架构下的业务直接通过编程语言API操作Oracle数据库,安装相关扩展对 ...

  9. ustc 1117

    无根树同构 有两种方法,一种是确定其中一棵树,另一棵树枚举根节点. 一种是,利用拓扑排序,先确定其中一棵树.另一棵树,若拓扑后剩两个节点,则枚举这两个节点为根结点,否则,只需做一次.注意,无根树节点入 ...

  10. 从头认识java-15.6 队列(Queue)

    这一章节我们来讨论一下队列(Queue). 1.什么是队列? 队列是一种特殊的线性表,特殊之处在于它仅仅同意在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样.队列是 ...