秒懂C语言中break和continue的区别

本文深入解析了编程中break和continue的使用场景与区别。详细介绍了break如何终止循环或switch语句,而continue如何跳过本次循环剩余部分,直接进入下一次循环。并通过具体代码示例展示了两种控制语句在不同情况下的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 break主要用于循环语句和分支语句(switch...)中:

1)break在循环结构中的作用是终止本层循环,即直接跳出该循环体,执行当前循环体外的语句;

需要注意的是:break只能跳出一层循环。如果你的循环是嵌套循环,则需要按照嵌套的层次逐步使用break来跳出。

2)break在switch中的作用是在执行完一个case分支后立即跳出当前switch结构

二、continue是用于终止本次循环的,也就是本次循环中continue后面的语句不再执行,而是直接跳到while语句的判断部分,进行下一次循环的入口判断

1)要注意的是:在for循环中遇到continue后,不再执行循环体剩下的语句,而是执行for循环中的表达式3,然后执行表达式2。

下面是代码理解:?

 

#include <stdio.h>

int main(){
	int i = 1; 
	while (i <= 10){
		if (i == 5)
		break;
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

该代码块输出为:

1  2  3  4   请按任意键继续...

该代码中由于当 i==5 时,使用 break 直接跳出该循环体,不再执行循环体中的内容,所以只能打印出 1 2 3 4 ,

但如果将代码中的break改为continue,那么程序在正常输出 1 2 3 4 后则会进入死循环,造成死循环的原因是当 i==5 时,使用continue跳出本次循环,继续执行 while(i <= 10),再次进入循环体,形成死循环。

 

int main(){
	int i = 1; 
	for (i = 1; i <= 10; i++){
		if (i == 5)
		continue;
		printf("%d ", i);
	}
	return 0;
}

 

该代码块输出为:

1  2  3  4  6  7  8  9  10  请按任意键继续...

原因是当满足 i==5 的条件后,程序执行表达式3(即i++),然后执行表达式2(即i<=10),现在的 i == 6 满足条件,故能继续执行下去。。。

 

### C语言 `break` `continue` 关键字的区别 在C语言中,`break` `continue` 是用于控制循环结构的关键字,但两者的作用不同。 #### `break` 的作用 当程序执行到 `break` 语句时,会立即退出当前所在的最近一层循环体,不再继续执行该循环内的后续代码。这适用于所有的循环结构 (`for`, `while`, `do...while`)。一旦遇到 `break`,整个循环结束并跳转至循环之后的下一条语句[^1]。 例如: ```c #include <stdio.h> int main(){ int i = 1; while (i <= 20){ printf("%d ", i); if (i == 10) break; // 当i等于10时跳出循环 i++; } } ``` 在这个例子中,当变量 `i` 达到10时,由于条件满足而触发了 `break`,因此循环提前终止,输出的结果仅为前十个整数[^2]。 #### `continue` 的作用 相比之下,`continue` 并不会完全中断循环,而是停止本次迭代剩下的部分,并直接进入下一个循环周期(如果有)。换句话说,它使得程序可以跳过当前循环体内剩余未被执行的部分,从而快速返回到循环头部重新评估循环条件[^3]。 比如下面的例子展示了如何利用 `continue` 来实现特定条件下忽略某些操作: ```c #include <stdio.h> void print_odd_numbers(int n) { for (int i = 1; i <= n; ++i) { if (i % 2 == 0) { // 如果是偶数则跳过此次打印 continue; } printf("%d\n", i); // 只有奇数才会被打印出来 } } int main() { print_odd_numbers(10); return 0; } ``` 这里定义了一个函数来仅打印给定范围内所有奇数;每当检测到偶数值时就会调用 `continue` 跳过后面的 `printf()` 函数调用,进而实现了筛选功能。 总结来说,`break` 主要用来彻底离开某个循环,而 `continue` 则是用来加速循环流程——即让程序尽快回到循环起点而不必完成当前轮次的所有指令。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值