break与continue详解

前言:break和continue的作用

        在循环执行的过程中,如果发生某些状况的时候,需要提前终止循环,这是非常常见的现象。C语言提供了breakcontinue两个关键字,就是应用到循环中的。

总:break和continue在for循环,while循环和dowhile循环中的区别

  1. break       break在所有循环中作用几乎都一样,都用于永久终止循环,但只跳出break外的第一层循环 。
  2. continue    continue在while循环和do while循环中的作用几乎一样,循环调整的位置不同,会产生不同的效果,有可能造成死循环;在for循环中,由于循环调整的位置固定,continue的效果是一样的。

下面进行一一举例说明:

一.while循环中的break和continue

1.break举例

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break;//当i=5后,就执行break,循环就终止了
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

运行结果: 

打印了1 2 3 4后,当i等于5时,循环在break的地方终于,不在打印,不再循环。

所以break的作用就是永久终止循环,只有break被执行,break外的第一层循环就终止了。 

2.continue举例

        continue是继续的意思,在循环中的作用就是跳过本次循环continue后面的代码,继续进行下一次循环的判断。

上面的代码,如果把break换成continue会是什么结果呢?

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
            //当i=5后,就执行continue,直接跳过continued代码,去循环的判断的地方
            //因为这里跳过了i=i+;所以i一直等于5,程序陷入死循环
		printf("%d ", i);
		i++;
	}
	return 0;
}

运行结果:程序陷入死循环 

        但不是while循环中的所有continue都会造成死循环。接下来,我们调换一下i++(循环的调整)的位置,就会得到不同的效果:

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
    	i++;//i进入循环后加1,等于2,跳过1,打印2
		if (i == 5)
			continue;//当i等于5时,跳过后面的代码,进入判断条件,后加1,i=6
        
		printf("%d ", i);//当打印10后,进入判断语句,为真,继续循环,打印11
		}
	return 0;
}

运行结果:

        到这里我们就能分析出来,continue可以帮助我们跳过某一次continue后边的代码,直接到循环的判断部分,进行下一次循环的判断,如果循环的调整是在continue后边的话,可能会造成死循环。 

(循环详解:后期会出)

二.for循环中break和continue

1.break举例

        和while循环中的break一样,for循环中的break也用于彻底终止循环。

#include<stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;
		printf("%d ", i);
	}
	return 0;
}

运行结果: 

2.continue举例

        同样,把上述代码中的break替换成continue

#include<stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;//这里continue跳过后边的打印,来到i++的调整部分
		printf("%d ", i);
	}
	return 0;
}

运行结果: 

这就相当于while循环continue的第二个例子

练习: 程序的输出结果是?

#include <stdio.h>
int main()
{
	int a = 0, b = 0;
	for (a = 1, b = 1; a <= 100; a++)
	{
		if (b >= 20) break;
		if (b % 3 == 1)
		{
			b = b + 3;
			continue;
		}
		b = b-5;
	}
	printf("%d\n", a);
	return 0;
}

 答案:8

三.do while语句中的break和continue

        do while语句中的break和continue的作用和while循环中的几乎一模一样。

1.break举例

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			break;
		printf("%d ", i);
		i = i + 1;
	} while (i <= 10);
	return 0;
}

 运行结果:

2.continue举例 

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i = i + 1;
	} while (i <= 10);
	return 0;
}

 运行结果:(死循环)

                欢迎斧正!!! 

期待

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]中解释了continue的含义。在编程中,continue是一个控制流语句,用于跳过当前循环中的剩余代码,并开始下一次循环。它的作用是在不终止整个循环的情况下,跳过当前迭代并继续执行下一次迭代。与break语句不同,continue只是跳过当前迭代,而不会终止整个循环。\[1\]所述的程度轻重是指在控制流中的作用程度,其中continue的程度最轻,只是小小的打断一下当前迭代,而不会终止整个循环。 #### 引用[.reference_title] - *1* [continuebreak和return的区别](https://blog.csdn.net/weixin_41692437/article/details/122812847)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [php switch continue 什么意思??](https://blog.csdn.net/weixin_36033516/article/details/116246654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python基础:continue语句知识详解](https://blog.csdn.net/u010292470/article/details/121003367)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值