首页 > 编程笔记

C++ break用法详解

在 C++ 中,break 的功能是立即跳出所在的循环(for、while、do-while)或 switch case 语句,继续执行后续的代码。

循环中使用break

当 break 在循环内被执行时,循环将立即终止,转而执行循环后面的代码。

例如,下面的 C++ 程序演示了从众多数据中找到第一个负数。
#include <iostream>

int main() {
    int numbers[] = {10, 5, -3, 8, 4};

    for (int i = 0; i < 5; i++) {
        if (numbers[i] < 0) {
            std::cout << "找到第一个负数:" << numbers[i] << std::endl;
            break; // 跳出循环
        }
    }

    return 0;
}
从 numbers 数组的第一个元素开始逐一判断,只要找到负数(number[i]<0),就输出这个数字并执行 break 语句终止循环。

执行程序,输出结果为:

找到第一个负数:-3


在嵌套的循环结构中,一个 break 只能终止一层循环,且终止的是包裹它、离它最近的那层循环。

举个简单的例子:
#include <iostream>

int main() {
    for (int i = 0; i < 3; i++) {   //②
        for (int j = 0; j < 3; j++) {   //①
            std::cout << "j=" << j << std::endl;
            break; //跳出内部循环
        }
        std::cout << "i=" << i << std::endl;
    }
    return 0;
}
观察第 7 行的 break 语句,包裹它、离它最近的是标号为 ① 的 for 循环,因此 break 终止的是内层循环的执行。

执行程序,输出结果为:

j=0
i=0
j=0
i=1
j=0
i=2

switch中使用break

在 switch case 语句中,break 用于分割不同的 case 语句,防止编译器连续执行多个 case 中的代码块。

例如,下面的 C++ 程序展示了 break 在 switch case 语句中的用处。
#include <iostream>

int main() {
    int choice;
    std::cout << "选择一个操作(1-加,2-减):";
    std::cin >> choice;

    switch (choice) {
        case 1:
            std::cout << "你选择了加法!" << std::endl;
            break;
        case 2:
            std::cout << "你选择了减法!" << std::endl;
            break;
        default:
            std::cout << "无效选择!" << std::endl;
            break;
    }

    return 0;
}
输出结果为:

选择一个操作(1-加,2-减):1
你选择了加法!


读者也可以将程序中的 break 注释掉,再次执行程序,输出结果为:

选择一个操作(1-加,2-减):1
你选择了加法!
你选择了减法!
无效选择!

总结

break 语句只能用在 switch 语句和循环语句中,否则会引起编译错误。

break 语句允许程序员有选择地终止循环或 switch 语句的执行,合理地使用 break,可以编写更灵活、更清晰的代码。

推荐阅读