C++ 中 break 与 continue 语句详解及代码示例
在 C++ 编程中,break 和 continue 是控制程序流程的关键语句,分别用于提前终止执行流程和跳过当次迭代。正确使用它们能显著简化逻辑,避免深层嵌套带来的复杂性。
结果与目标
break 语句的主要作用是立即终止最近的封闭循环(for、while、do-while)或 switch 语句块,并将控制权传递给该语句之后的下一条语句。continue 语句则用于循环内部,跳过当前迭代中剩余的代码,直接跳转到循环的条件检查或增量部分,从而开启下一次迭代。
准备条件
- C++ 开发环境(支持 C++11 及以上标准效果更佳)。
- 理解基本的循环结构(
for、while、do-while)。 - 理解
switch-case的穿透机制。
第 1 步:使用 break 终止 for 循环
目的:在特定条件下提前结束遍历过程。
操作:在循环体内设置判断条件,当满足条件时触发 break。
#include <iostream>
using namespace std;
int main()
{
// 使用普通 for 循环
for (int i = 1; i < 10; i++)
{
cout << i << '\n';
if (i == 4)
break; // 当 i 等于 4 时,立即终止循环
}
// 使用基于范围的 for 循环 (C++11)
int nums [] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i : nums) {
if (i == 4) {
break; // 遇到 4 停止处理
}
cout << i << '\n';
}
}
完成状态:控制台仅输出 1 到 3,因为 break 阻止了 4 及之后数字的输出。
第 2 步:在 while 和 do-while 中使用 break
目的:防止无限循环或在中间某一刻安全退出。
操作:在条件判断块中加入 break。
#include <iostream>
using namespace std;
int main() {
int i = 0;
// while 循环示例
while (i < 10) {
if (i == 4) {
break;
}
cout << i << '\n';
i++;
}
// do-while 循环示例
i = 0;
do {
if (i == 4) {
break;
}
cout << i << '\n';
i++;
} while (i < 10);
}
完成状态:两个循环均在打印 0, 1, 2, 3 后停止,不会执行到 9。
第 3 步:掌握 switch 中的 break 穿透机制
目的:明确每个 case 分支结束后必须使用 break,否则会发生“穿透”现象。
操作:确保每个需要独立执行的 case 末尾包含 break。
#include <iostream>
using namespace std;
enum Suit { Diamonds, Hearts, Clubs, Spades };
int main() {
Suit hand = Diamonds; // 假设值为 Diamonds
// 独立处理模式:每个 case 都有 break
switch (hand)
{
case Diamonds:
cout << "got Diamonds \n";
break;
case Hearts:
cout << "got Hearts \n";
break;
case Clubs:
cout << "got Clubs \n";
break;
case Spades:
cout << "got Spades \n";
break;
default:
cout << "didn't get card \n";
}
// 合并处理模式:利用穿透机制
switch (hand)
{
case Diamonds:
case Hearts:
cout << "got a red card \n"; // Diamonds 匹配后执行此行
break;
case Clubs:
case Spades:
default:
cout << "didn't get a red card \n";
}
}
注意:若遗漏 break,程序将继续执行下一个 case 内的代码,直到遇到 break 或 switch 结束。这在某些场景下是有用的(如上述红黑牌分组),但在大多数需要互斥处理的场景中会导致逻辑错误。
第 4 步:使用 continue 跳过当前迭代
目的:忽略特定条件下的剩余代码,直接进入下一次循环。
操作:在需要跳过的分支中添加 continue。
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf_s("在继续之前\n");
continue; // 跳过下方语句,直接进入下一次迭代
printf("在继续之后,不被输出\n"); // 这行代码永远不会执行
} while (i < 3);
printf_s("在do循环之后\n");
}
完成状态:控制台打印三次 “在继续之前”,随后打印 “在do循环之后”。下方的 printf 被 continue 阻断,因此不会被输出。对于 for 循环,continue 会先执行增量表达式(如 i++),再重新判断条件。
简要总结
break 是“彻底离开”,适用于循环或 switch 的全局退出;continue 是“局部跳过”,仅影响当前单次迭代。在实际开发中,应优先优化循环条件以避免过度依赖这两个语句,但在处理复杂跳出逻辑或无效数据处理时,合理使用它们能提升代码的可读性与执行效率。
以上就是 C++ 中 break 和 continue 语句的详细教学内容,更多关于 C++ 编程控制流技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









