问题: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 * 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) { foreach ($arr as $ks=>$vs) { echo $v.' * '.$vs. ' = '.$v*$vs.' '; } echo "<br/>"; } }
运行结果:
2. 内部循环使用 continue 跳出循环
/** * [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) { foreach ($arr as $ks=>$vs) { if($vs == 5) { echo "跳出循环一次"; continue; } echo $v.' * '.$vs. ' = '.$v*$vs.' '; } echo "<br/>"; } }
运行结果:
发现在内部循环 跳出一次循环,是每次 执行到 $vs == 5 的情况下跳出当前循环
3. 内部循环使用 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) { foreach ($arr as $ks=>$vs) { if($vs == 5) { echo "跳出循环一次"; break; } echo $v.' * '.$vs. ' = '.$v*$vs.' '; } echo "<br/>"; } }
运行结果:
发现在内部使用 break 跳出循环,只要执行到 $vs == 5 就会结束内部循环开始新的外层循环
4. 外层循环使用 continue
/** * [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/>"; continue; } foreach ($arr as $ks=>$vs) { echo $v.' * '.$vs. ' = '.$v*$vs.' '; } echo "<br/>"; } }
运行结果:
在外层循环执行到 $v == 5 时,跳出当前行循环并继续执行。
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.' ';
}
echo "<br/>";
}
}
运行结果:
在外层循环执行到 $v == 5 时,结束当前循环。
双层 for、foreach 循环中的 break、continue 的运行结果来看:
内层循环使用 break、continue 是用于控制“列”循环是否跳出,或者结束
外层循环使用 break、continue 适用于控制 “行”循环是否跳出,或者结束
发现问题,解决问题是一个很开心的事情哈。
有什么疑问可以留言咨询哈~~~
转载请注明出处~~~~