你可以通过传递一个数字来打破PHP之类的多个循环吗?

ale*_*lex 1 c loops

如果您在PHP中处于第三个嵌套循环中,则可以执行break 3;并将所有循环分解为3个级别.

break似乎在C中工作.但如果我这样做,break 3我会收到语法错误.我想它不支持它.

打破多个循环的最佳方法是什么?我应该设置一个检查循环的标志 - 如果设置了则会中断吗?

有什么更优雅的吗?

Dan*_*llo 10

你可以使用goto,但是:

替代文字


小智 10

有时goto是最优雅的解决方案.


Ste*_*sop 8

通常的解决方案是:

  • 在每个嵌套循环中检查标志或其他状态
  • goto 外循环结束后的标签
  • 重构您的代码,以便嵌套循环属于自己的函数.用于return实际上从最外面的循环中断.


Jar*_*Par 5

除此之外的另一种方法goto是在for循环的所有条件部分中使用共享变量。这个共享变量可以用作循环的终止开关。

bool done = false;
for (int i = 0; i < someNum && !done; i++ ) {
  for ( int j = 0; j < someOtherNum && !done; i++ ) {
    for ( int j = 0; j < again && !done; i++ ) { 
      if ( someCondition ) { 
        done = true;
        break;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)