以下是我的代码架构:
while (..)
{
for (...; ...;...)
for(...;...;...)
if ( )
{
...
continue;
}
}
继续做什么?他只会让第二次循环迭代一次,不是吗? 我希望它能够达到目标,是否可能?
谢谢!
答案 0 :(得分:5)
此处continue
影响最近的循环 - 您的第二个for
。有两种方法直接跳转到while
:
goto
,虽然有时“被认为有害”,但这可以说仍然是存在的主要原因 return
说明后者:
while (..)
{
DoSomething(..);
}
void DoSomething(..) {
for (...; ...;...)
for(...;...;...)
if ( )
{
...
return;
}
}
和前者:
while (..)
{
for (...; ...;...)
for(...;...;...)
if ( )
{
...
goto continueWhile;
}
continueWhile:
{ } // needs to be something after a label
}
答案 1 :(得分:2)
while (..)
{
for (...; ...;...)
for(...;...;...)
if ( )
{
...
goto superpoint;
}
superpoint:
//dosomething
}
答案 2 :(得分:2)
您应该设置一个变量来确定何时需要离开循环。
while (..)
{
bool goToWhile = false;
for (...; ... && !goToWhile; ...)
for (...; ... && !goToWhile; ...)
if ( )
{
...
goToWhile = true;
}
}
但是想出更好的名字;)
答案 3 :(得分:1)
不可能直接因为continue;
只继续执行当前循环,转到外部循环你唯一能做的就是设置一些标志并在外循环中检查它
答案 4 :(得分:1)
continue
或break
始终是最接受continue
或break
的内部循环。在这种情况下,它是代码中最低的for
循环。
答案 5 :(得分:0)
只有使用continue语句才有可能。 Continue和break语句仅影响它们嵌套的最内部循环。
您可以设置变量并在外循环中进行检查。或者在for语句中重新组织IF语句和break条件。
while (..)
{
for (...; ...;...)
{
for(...;...;...)
if ( )
{
...
skipLoop = true
}
if (skipLoop)
continue;
}
}
希望这有帮助!