我的代码是这样的: -
for() //outer for
{
for() //inner for
{
if()
{
break;
}
}
}
如果break语句执行,下一次执行将是哪个for循环?我知道这是一个非常抽象的问题,但我真的没有时间编写完整的代码。谢谢。
我的代码是这样的: -
for() //outer for
{
for() //inner for
{
if()
{
break;
}
}
}
如果break语句执行,下一次执行将是哪个for循环?我知道这是一个非常抽象的问题,但我真的没有时间编写完整的代码。谢谢。
该break
语句终止它出现的最近的封闭do
, for
, switch
, or语句的执行。while
在这种情况下,这意味着只突破内部for
。
编辑: 标准参考: 6.6.1 break 语句 [stmt.break]
1 break 语句应仅出现在迭代语句或 switch 语句中,并导致最小的封闭迭代语句或 switch 语句终止;控制传递到终止语句之后的语句(如果有)。
break
只会打破内在**loop**
。它只在它被调用的地方打破最近的循环。
在您的示例中,如果满足您的if
条件,它将停止内部 for 循环的迭代并移回(继续)外部 for 循环。
如果你愿意,你也可以使用 goto 来打破外循环。
您需要一种方法来打破外部循环,因为break
它只会离开其封闭范围。你用来管理状态的东西可以是任何东西,但在最简单的形式中,你可以使用一个布尔值并检查它以及最外层循环中的原始条件。
bool breakLoop = false;
for(...; ... && !breakLoop; ...) //outer for
{
for() //inner for
{
if()
{
breakLoop = true;
break;
}
}
}