问题:foreach 一定很熟悉吧,break 与 continue 具体有使用过吧~~

那么 两层 foreach 中 的 break ,continue 的执行情况是什么样子呢~~

你知道不了???

不太清楚或者有疑问点的同学们,我们就来一起看下哈。


Break 介绍:

break是被用在上面所提的各种循环和switch语句中的。他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环。

Continue 介绍:

continue是用来用在循环结构中,控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。如果在非循环结构中(例如if语句中,switch语句中)使用continue,程序将会出错。


1. 首先排列下 两次普通 foreach 的结果

/***[ForeachDemo双层foreach循环测试]*Author:Heze*CreateTime:20210113:58*/publicfunctionForeachDemo(){$arr=[1,2,3,4,5,6,7,8,9,10];foreach($arras$k=>$v){foreach($arras$ks=>$vs){echo$v.'*'.$vs.'='.$v*$vs.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';}echo"<br/>";}}

运行结果:

01_result.png2.内部循环使用 continue 跳出循环

/***[ForeachDemo双层foreach循环测试]*Author:Heze*CreateTime:20210113:58*/publicfunctionForeachDemo(){$arr=[1,2,3,4,5,6,7,8,9,10];foreach($arras$k=>$v){foreach($arras$ks=>$vs){if($vs==5){echo"跳出循环一次";continue;}echo$v.'*'.$vs.'='.$v*$vs.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';}echo"<br/>";}}

运行结果:

发现在内部循环 跳出一次循环,是每次 执行到 $vs == 5 的情况下跳出当前循环

02_result.png

3. 内部循环使用 break 跳出循环

/***[ForeachDemo双层foreach循环测试]*Author:Heze*CreateTime:20210113:58*/publicfunctionForeachDemo(){$arr=[1,2,3,4,5,6,7,8,9,10];foreach($arras$k=>$v){foreach($arras$ks=>$vs){if($vs==5){echo"跳出循环一次";break;}echo$v.'*'.$vs.'='.$v*$vs.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';}echo"<br/>";}}

运行结果:

发现在内部使用 break 跳出循环,只要执行到 $vs == 5 就会结束内部循环开始新的外层循环

03_result.png

4. 外层循环使用 continue

/***[ForeachDemo双层foreach循环测试]*Author:Heze*CreateTime:20210113:58*/publicfunctionForeachDemo(){$arr=[1,2,3,4,5,6,7,8,9,10];foreach($arras$k=>$v){if($v==5){echo"跳出循环一次<br/>";continue;}foreach($arras$ks=>$vs){echo$v.'*'.$vs.'='.$v*$vs.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';}echo"<br/>";}}

运行结果:

在外层循环执行到 $v == 5 时,跳出当前行循环并继续执行。

04_result.png

5. 外层循环使用 break

/**
* [ForeachDemo 双层 foreach 循环测试]
* Author: Heze
* Create Time: 2021 01 13:58
*/
public function ForeachDemo()
{

$arr = [1,2,3,4,5,6,7,8,9,10];

foreach ($arr as $k=>$v) {

if($v == 5) {
echo "跳出循环一次<br/>";
break;
}

foreach ($arr as $ks=>$vs) {
echo $v.' * '.$vs. ' = '.$v*$vs.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
}
echo "<br/>";
}
}

运行结果:

在外层循环执行到 $v == 5 时,结束当前循环。

05_result.png


双层 for、foreach 循环中的 break、continue 的运行结果来看:

内层循环使用 break、continue 是用于控制“列”循环是否跳出,或者结束

外层循环使用break、continue 适用于控制 “行”循环是否跳出,或者结束




发现问题,解决问题是一个很开心的事情哈。

有什么疑问可以留言咨询哈~~~




转载请注明出处~~~~



更多相关文章

  1. 【面试】PHP 字符串翻(反)转的几种方法
  2. ansible条件判断和循环
  3. 运算符、流程控制、循环与文件包含
  4. 从 用python写乘法表中过程中的学到什么
  5. 3.10c语言自学
  6. 学习C语言第五天(循环结构课后练习)
  7. 债务经济循环和投资
  8. 学习C语言第四天(循环语句练习题)
  9. Linux下Shell的for循环语句N种写法

随机推荐

  1. Javascript知识汇总------面向对象中继承
  2. 在关联数组中移动元素[重复]
  3. 对JavaScript优化及规范的一些感想
  4. 键盘出现时,UIWebView滚动。导致点击偏移
  5. 我如何捕获并插入Meteor.Error警报从Mete
  6. JavaScript 实现GridView汇总
  7. 如何使用try,catch在错误处理中打印消息
  8. javascript之DOM技术(二)
  9. 有没有办法在javascript控制台中将上下文
  10. 如何使用Require JS配置具有第三方js依赖