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