C语言break和continue的用法(非常详细)
break 和 continue 是 C 语言中两个非常重要的流程控制语句,它们用于改变循环或条件语句的执行流程。
学习 break 和 continue 之前,相信读者已经掌握了 C 语言中 while、do-while 和 for 循环语句的用法。break 和 continue 的主要作用是在循环中控制代码的跳转。简单来说:
-
break用于“跳出”整个循环; -
continue用于“跳过”当前循环的剩余部分,直接进入下一次循环。
本教程将从定义、用法、实际案例以及注意事项等方面,详细讲解 break 和 continue。
C语言break语句
break 语句的作用是立即终止当前所在的循环或 switch 语句,并将程序控制权转移到循环或 switch 之后的下一条语句。
break 语句的语法格式如下:
break;
是的,就是这么简单!break 是一个单独的关键字,后面直接跟分号,不需要任何参数。
break 通常出现在以下结构中:
-
for循环; -
while循环; -
do-while循环; -
switch语句。
在循环中,break 会直接跳出整个循环;在 switch 中,它会跳出整个 switch 块,避免后续 case 的执行。
让我们通过一个例子来看看 break 的实际效果。假设我们要找出一个数组中第一个大于 10 的数字,并立即停止搜索。
#include <stdio.h>
int main() {
int arr[] = {5, 8, 12, 15, 20};
int i;
for (i = 0; i < 5; i++) {
if (arr[i] > 10) {
printf("找到第一个大于 10 的数:%d\n", arr[i]);
break; // 找到后立即退出循环
}
printf("当前数字:%d\n", arr[i]);
}
printf("循环结束\n");
return 0;
}
输出结果:
当前数字:5 当前数字:8 找到第一个大于 10 的数:12 循环结束
在这个例子中,当程序发现 arr[2](值为 12)大于 10 时,break 立刻终止了 for 循环,后续的 15 和 20 不再被检查。这就是 break 的“跳出”效果。
注意事项
-
break只跳出它所在的“最近一层”循环。如果有嵌套循环,break不会影响外层循环。 -
在
switch中,如果忘记写break,会导致“贯穿”问题,后续case会被依次执行(除非这是你想要的效果)。
C语言continue语句
continue 语句的作用是跳过当前循环的剩余代码,直接进入下一次循环。
和 break 不同,它不会终止整个循环,而是“继续”执行下一次迭代。它的典型用途是过滤掉某些不符合条件的循环次数。
continue 语句的语法格式如下:
continue;
和 break 一样,continue 也是一个单独的关键字,后面直接跟分号。
continue 适用于以下循环结构:
-
for循环; -
while循环; -
do-while循环;
需要注意的是,continue 不用于 switch 语句,因为它的设计初衷是针对循环。
假设我们要打印 1 到 10 中所有的奇数,跳过偶数,就可以用 continue 来实现。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
if (i % 2 == 0) { // 如果是偶数
continue; // 跳过本次循环
}
printf("%d 是奇数\n", i);
}
return 0;
}
输出结果:
1 是奇数 3 是奇数 5 是奇数 7 是奇数 9 是奇数
在这个例子中,当 i 是偶数时,continue 会跳过 printf 语句,直接进入下一次循环(i 自增后继续判断)。因此,只有奇数会被打印。
注意事项
-
在
for循环中,continue会直接跳到“更新表达式”(如i++),然后再判断条件。 -
在
while或do-while中,continue会跳到条件判断部分,注意避免死循环。
break和continue的对比
为了更直观地理解两者的区别,我们可以用一个表格来总结:
| 特性 |
break |
continue |
|---|---|---|
| 作用 | 终止整个循环 | 跳过当前循环的剩余部分 |
| 适用范围 |
循环和 switch |
仅循环 |
| 执行后跳转位置 |
循环或 switch 后的语句 |
下一次循环的开始 |
综合示例
让我们通过一个更复杂的例子,看看如何同时使用 break 和 continue。
假设我们要从 1 到 20 中打印所有不是 3 的倍数的数字,但如果遇到 15,就提前结束循环。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 20; i++) {
if (i == 15) {
printf("遇到 15,提前结束\n");
break;
}
if (i % 3 == 0) {
continue; // 跳过 3 的倍数
}
printf("%d\n", i);
}
return 0;
}
输出结果:
1 2 4 5 7 8 10 11 13 14 遇到 15,提前结束
在这个例子中,continue 跳过了 3、6、9、12 等数字,而 break 在 i 达到 15 时终止了整个循环。
总结
break 和 continue 是 C语言里常用的循环控制语句,能够灵活地控制循环的执行流程。
阅读完本文,相信你已经掌握了 break 和 continue 的用法。建议你在实际编程中多加练习,比如尝试用 break 实现查找功能,或用 continue 过滤数据,真正将知识转化为技能。
ICP备案:
公安联网备案: