Blogger Information
Blog 91
fans 0
comment 0
visits 203364
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【面试】PHP 中 两层 Foreach 中使用 continue,break 的执行方式
何澤小生的博客
Original
3344 people have browsed it

问题: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/>";
    }
}

运行结果:

01_result.png2. 内部循环使用 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.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
        }
        echo "<br/>";
    }
}

运行结果:

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

02_result.png

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.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
        }
        echo "<br/>";
    }
}

运行结果:

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

03_result.png

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.'&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  适用于控制 “行”循环是否跳出,或者结束




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

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




转载请注明出处~~~~



Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post