循环中断¶
break¶
跳出当前循环,接着执行循环后面的语句。
输出 1 到 10。i 变成 11 时,执行 break,结束循环。
这里省略了 for 中间的循环条件,表示条件一直成立,靠 break 退出。两个分号不能省。
while 也可以这样写
true 表示条件一直成立。注意不能漏掉 i++,否则 i 一直是 1,循环停不下来。
continue¶
跳过本轮剩下的语句,继续下一轮。
输出 1 3 5 7 9。遇到偶数,就跳过本轮的输出。
continue 不会结束整个循环。
break 与 continue 的区别¶
| 语句 | 作用 |
|---|---|
break |
结束当前循环 |
continue |
跳过本轮剩余语句,循环继续 |
for 中,continue 后仍会执行更新操作。
上面的例子遇到偶数时,虽然跳过了输出,但仍会执行 i++,然后判断循环条件。
while 中,continue 后直接回到条件判断。
如果更新变量的语句写在 continue 后面,也会被跳过。
常见错误¶
continue 跳过了变量更新
int i = 1;
while (i < 10) {
if (i % 2 == 0) {
continue; // 错误:i等于2时,一直回到条件判断
}
cout << i << ' ';
i++;
}
i 变成 2 后,每轮都会跳过 i++,变成死循环。
可以把需要跳过的操作,改成满足条件才执行:
break 不会结束整个程序
跳出循环后,程序还会继续执行。结束 main,用的是 return。
嵌套循环里,break 只跳出它所在的最内层循环。
不会一下子跳出所有循环。下一篇讲循环嵌套时,再看具体例子。
如果循环里还套了 switch,写在 switch 中的 break 只结束这个 switch。