同时在PHP中使用Break和Continue关键字

11

我有一个嵌套循环,如下所示:

while(1){

    while($something){
        break & continue;
    }
    // More stuff that I don't want to process in this situation
}

我希望能够在不使用变量的情况下,跳出第二个 while 循环并从头开始继续第一个循环(而不是完成第一个循环)。这种方法可行吗?


我在第二个循环中有IF/THEN语句,用于确定是否应该继续、跳出循环,或者同时跳出并继续。我可以使用变量来确定这一点,但我想知道是否可能不使用变量来实现。 - nick
这听起来更像是你的逻辑需要更多的结构,而不是其他任何东西;break和continue通常是最后的手段。 - Brad Koch
我不喜欢在我的守护进程中使用太多嵌套的IF/THEN语句。我需要使用breaks和continues的原因是有道理的。 - nick
另一个建议是添加一些功能分解。这样做也更容易维护。 - Brad Koch
3个回答

12

在内部循环中使用continue 2;可以使外部循环从头开始继续执行。

http://php.net/manual/zh/control-structures.continue.php

continue 命令接受一个可选的数字参数,用于告诉它应该跳过多少层嵌套的循环到结尾。默认值为 1,即跳过当前循环。


1

在内部循环中使用“break”。它将跳出内部循环,外部循环将继续执行。


我在第二个while循环之后还有更多的东西不想处理。我需要这样做的原因。 - nick
哦,我明白了。你发布的代码中缺少了这个。你看过编号的break和continue吗?看看这个 - https://dev59.com/JG435IYBdhLWcg3w3EIi - Praveen

0
在内部 while 循环后,你可以不使用 if 语句来执行 continue 吗?
while(1){

    while($something){
        break;
    }

    if (!$something) {
       continue;
    }

    // More stuff that I don't want to process in this situation
}

当然可以,这也是我可能要做的事情。我的问题是是否可以在不使用额外变量的情况下完成此操作。 - nick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接