【C语言】break 关键字详解

简介: - `break` 关键字用于提前退出循环体或 `switch` 语句的执行。- 在 `for`、`while` 和 `do-while` 循环中,`break` 可以帮助程序在满足特定条件时退出循环。- 在 `switch` 语句中,`break` 用于终止 `case` 代码块的执行,避免代码“穿透”到下一个 `case`。- 注意 `break` 只会退出最内层的循环或 `switch` 语句,确保在嵌套结构中正确使用 `break` 以避免意外的控制流行为。

c_keyword.png

C语言 break 关键字详解

break 关键字在 C 语言中用于终止循环或 switch 语句的执行。它可以帮助程序在满足特定条件时提前退出循环或跳出 switch 语句,从而提高程序的控制流灵活性。

1. break 关键字的基本用法

break 通常用于以下几种情况:

用法 描述 示例代码
for 循环 提前退出循环 if (i == 5) break;
while 循环 提前退出循环 if (i == 5) break;
do-while 循环 提前退出循环 if (i == 5) break;
switch 语句 终止 switch 语句的执行 case 1: break;

1.1 for 循环中的 break 使用

for 循环中,break 用于在满足特定条件时提前退出循环体。例如:

#include <stdio.h>

int main() {
   
    for (int i = 0; i < 10; i++) {
   
        if (i == 5) {
   
            break; // 当 i 等于 5 时,退出循环
        }
        printf("%d\n", i);
    }
    return 0;
}

输出:

0
1
2
3
4

解释:

  • 循环体for 循环每次迭代时都会检查循环条件 i < 10。在每次循环迭代时,i 的值都会增加。
  • 条件判断:当 i 达到 5 时,if (i == 5) 条件为真,break 语句被执行,导致程序立即跳出循环,printf 函数后面的语句不会再被执行。
  • 结果:输出值从 0 到 4,循环在 i 等于 5 时提前结束。

1.2 while 循环中的 break 使用

while 循环中,break 的作用是相同的:用于在满足条件时退出循环。例如:

#include <stdio.h>

int main() {
   
    int i = 0;
    while (i < 10) {
   
        if (i == 5) {
   
            break; // 当 i 等于 5 时,退出循环
        }
        printf("%d\n", i);
        i++;
    }
    return 0;
}

输出:

0
1
2
3
4

解释:

  • 循环条件while (i < 10) 是循环的继续条件,每次循环都会检查 i 是否小于 10。
  • 条件判断if (i == 5) 条件为真时,break 语句被执行,跳出 while 循环。
  • 结果:输出值从 0 到 4,当 i 等于 5 时,循环被终止。

1.3 do-while 循环中的 break 使用

do-while 循环中,break 的使用方式与 forwhile 循环类似:在满足条件时提前退出循环。例如:

#include <stdio.h>

int main() {
   
    int i = 0;
    do {
   
        if (i == 5) {
   
            break; // 当 i 等于 5 时,退出循环
        }
        printf("%d\n", i);
        i++;
    } while (i < 10);
    return 0;
}

输出:

0
1
2
3
4

解释:

  • 循环体do-while 循环在每次迭代结束时都会检查循环条件 i < 10。与 while 循环不同的是,do-while 循环至少执行一次循环体。
  • 条件判断:当 i 等于 5 时,break 语句触发,导致循环提前结束。
  • 结果:输出从 0 到 4,i 等于 5 时,break 语句使循环停止。

1.4 switch 语句中的 break 使用

switch 语句中,break 用于终止 case 语句的执行,避免程序继续执行下一个 case。例如:

#include <stdio.h>

int main() {
   
    int num = 2;
    switch (num) {
   
        case 1:
            printf("Number is 1\n");
            break;
        case 2:
            printf("Number is 2\n");
            break;
        default:
            printf("Number is not 1 or 2\n");
    }
    return 0;
}

输出:

Number is 2

解释:

  • switch 语句:根据 num 的值选择执行相应的 case 代码块。
  • case 语句:当 num 等于 2 时,匹配 case 2,执行 printf("Number is 2\n");
  • break 语句:确保只执行当前 case 的代码,并跳出 switch 语句。没有 break 语句的情况下,程序会继续执行后续的 case 代码块,即使条件不匹配。

2. 使用 break 的注意事项

2.1 嵌套循环中的 break

break 只会退出包含它的最内层循环。如果有多个嵌套的循环,break 语句只会退出最近的一个循环。例如:

#include <stdio.h>

int main() {
   
    for (int i = 0; i < 3; i++) {
   
        for (int j = 0; j < 3; j++) {
   
            if (j == 1) {
   
                break; // 退出内层循环
            }
            printf("i = %d, j = %d\n", i, j);
        }
    }
    return 0;
}

输出:

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

解释:

  • 嵌套循环:外层 for 循环和内层 for 循环。
  • 内层 break:当 j 等于 1 时,break 语句退出内层循环,外层循环继续执行。
  • 结果:内层循环输出的 j 值只到 0,j 达到 1 时内层循环退出。

2.2 switch 语句中的 break

确保每个 case 后面都有 break,否则会发生“穿透”现象。穿透现象指的是 switch 语句会继续执行下一个 case 的代码,即使当前 case 已经匹配并执行。例如:

#include <stdio.h>

int main() {
   
    int num = 2;
    switch (num) {
   
        case 1:
            printf("Number is 1\n");
        case 2:
            printf("Number is 2\n");
        default:
            printf("Number is not 1 or 2\n");
    }
    return 0;
}

输出:

Number is 2
Number is not 1 or 2

解释:

  • 穿透现象:没有在 case 1case 2 后面加 break,导致执行了 case 2 之后的 default 语句块。

3. 总结

  • break 关键字用于提前退出循环体或 switch 语句的执行。
  • forwhiledo-while 循环中,break 可以帮助程序在满足特定条件时退出循环。
  • switch 语句中,break 用于终止 case 代码块的执行,避免代码“穿透”到下一个 case
  • 注意 break 只会退出最内层的循环或 switch 语句,确保在嵌套结构中正确使用 break 以避免意外的控制流行为。

4. 结束语

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对 break 关键字区别有了更深入的理解和认识。
  2. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持![点我关注❤️]
目录
相关文章
|
7月前
|
C语言
在C语言中的break语句
在C语言中的break语句
59 0
|
23小时前
|
C语言
【C语言】continue 关键字详解
`continue` 关键字在 C 语言中用于跳过当前循环中的剩余代码,并立即开始下一次迭代。它主要用于控制循环中的流程,使程序在满足特定条件时跳过某些代码。
11 1
【C语言】continue 关键字详解
|
4月前
|
C语言
C语言中的break语句
C语言中的break语句
137 1
|
4月前
|
编译器 C语言
C语言中的goto语句
C语言中的goto语句C语言中的goto语句 goto语句是C语言(及许多其他早期编程语言)中的一个控制流语句,它允许程序无条件地跳转到程序中的另一个位置。goto语句后面跟着一个标签(label),该标签是程序中某个语句之前的一个标识符。当执行到goto语句时,程序会立即跳转到与该标签相关联的语句处继续执行。 1. 基本概念与工作原理 基本概念:goto语句通过标签来指定跳转的目标位置。标签是一个以冒号:结尾的标识符,它可以放在程序中的任何语句之前(除了函数定义和变量声明的开始)。 工作原理:当执行到goto语句时,程序会查找与goto语句中指定的标签相匹配的标识符,并跳转到该标签所在的位置
|
1天前
|
存储 C语言
【C语言】bool 关键字详解
`bool` 关键字在C语言中用于表示布尔类型(Boolean Type),它只有两个取值:`true`(真)和 `false`(假)。在标准的C90和C99中并没有直接支持布尔类型,但在C99标准中引入了`<stdbool.h>`头文件来提供布尔类型的支持。
8 1
|
1天前
|
安全 程序员 编译器
【C语言】const 关键字详解
`const`关键字在C语言中用于定义常量,提供只读的变量。这意味着一旦初始化,`const`变量的值不能再被修改。下面详细介绍`const`关键字的用法、作用以及其在不同上下文中的应用。
9 2
|
1天前
|
存储 算法 编译器
【C语言】register 关键字详解
`register` 关键字是C语言中的一种存储类修饰符,它用于提示编译器将变量存储在CPU寄存器中,而不是在内存中。这种做法旨在提高变量访问的速度,因为访问寄存器比访问内存快得多。
11 1
|
4月前
|
C语言
C语言中的continue语句
C语言中的continue语句C语言中的continue语句 continue语句是C语言(及许多其他编程语言)中的一个控制语句,它用于跳过当前循环迭代中剩余的代码,并立即开始下一次循环迭代。当执行到continue语句时,程序会忽略循环体中continue之后的所有语句,并直接检查循环条件以判断是否继续下一次迭代。 1. 基本概念与工作原理 基本概念:continue语句本身不包含任何参数,也不执行任何除控制流之外的操作。它仅仅是一个指示,告诉程序跳过当前循环迭代的剩余部分。 工作原理:在循环体中,当执行到continue语句时,程序会立即跳转到循环的末尾(但不执行循环末尾的更新表达式或迭代
|
4月前
|
存储 缓存 编译器
【关键字】——register在C语言中的使用
【关键字】——register在C语言中的使用
|
5月前
|
C语言