在此示例中,中断子句如何响应?



break子句如何工作?

我知道如果我在循环中有break,循环将终止其执行。例如:

for (int i=0; i<10; i++) {
break;
}

但是,如果break子句在循环内部,但也在ifelse内,它会起作用吗?例如:

for (int i=0; i<10; i++) {
if (i==7) {   
//code
break;
//code
}
}

break子句是使for循环结束,还是只是跳过if子句旁边的代码并继续迭代?

如果break子句在循环中的循环内怎么办?它会结束两个循环的执行还是只是最近的循环的执行?

提前谢谢。

break 语句将始终仅退出内部循环。如果语句不算作这些语句。如果需要一次中断多个循环,可以使用标记:

A: while (true) {
B: while (true) {
break A;
}
}

'break' 语句总是打破循环。如果要跳过特定索引的迭代,可以使用"continue"关键字:

for (int i=0; i<10; i++) {
if (i==7) {   
//code
continue;
//second part of code
}

}

这段代码要做的是,如果 i == 7,它将运行//code 部分,当它到达 continue 语句时,它将立即跳过代码的//second 部分并移动到下一次迭代 i = 8。如果有多个嵌套循环,则 break 语句将仅中断应用它的循环。但是,如果父循环中断,子(嵌套(循环也将自动中断。

for (int i=0; i<10; i++) {
for(int j = 0; j<10; j++){
if(j==3){
break;
}
}
}

此代码只会在 j 等于 3 时中断内部循环。请记住,由于第二个循环是嵌套的,即使它中断,当父循环转到下一个索引时,它也会再次运行。

break会导致跳转到循环的末尾,如下所示:

for (int i=0; i<10; i++) {
if (i==7) {   
// code here will be executed
break;
// code here will not be executed
}
} // break statement is like a goto to this line

一个break总是只影响一个循环,它最内部的循环

for (int i=0; i<10; i++) {
if (i==7) {   
//code A
break;
//code B
}
}

这将运行循环 8 次,并将在i=7上中断整个循环。此外,语句之后code Bbreak将无法访问,因此在这种情况下编写它是没有意义的。

最新更新