C语言分支和循环补充

本文详细介绍了循环语句中的break和continue语句,以及它们在while,for和do...while循环中的应用。同时提及了goto语句用于多层循环间的快速跳出,但需谨慎使用以避免影响程序逻辑。
摘要由CSDN通过智能技术生成

前面介绍过了分支语句和循环语句,本次主要对循环语句中常用的语句进行补充。

目录

一、break语句和continue

        1.break语句

        2.break语句举例

        3.continue语句 

        4.continue语句举例 

二、goto语句 


 

一、break语句和continue

        1.break语句

            break的作用是永久的终止循环 ,只要break被执行,就直接跳出循环,继续往后执行。

        2.break语句举例

(1)while中的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;
}

                               

              第一次循环:i=1   打印 1    i=2;

              第二次循环:i=2   打印 2    i=3;

              第三次循环:i=3   打印 3    i=4; 

              第四次循环:i=4   打印 4    i=5; 

观察:在进行while循环时,第四次循环结束之后 i=5, 符合表达式“ i == 5”,执行break,结束循环。

注意:break只能跳出一层循环

(2) for中的break

#include <stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;//i=5时,执行break语句,跳出for循环
		printf("%d ", i);
	}
	return 0;
}

 (3)do...while中的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;
}

通过观察我们可以看到在for语句和do...while语句中break的使用方式基本一致,均能够在符合条件时跳出循环。但不论在哪种语句中,break均只能跳出一层循环。 

        3.continue语句 

            continue的作用是跳过本次循环位于continue后面的代码。

        4.continue语句举例 

 (1)while中的continue

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;//当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

 

可以观察到continue使循环跳过了i+1,使循环整体变成死循环 

 (2) for中的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;
}

当i=5时,for语句中执行continue跳过对5的打印直接再次进入i++的循环中  

 (3) do...while中的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;
}

  

 在do...while中的continue和while中的几乎一样,可能会导致程序进入死循环。

二、goto语句 

前面讲过每一个break只能跳出一层循环,当出现循环的嵌套时要跳出多个循环就需要多个break;而此时,使用goto语句可以更快捷地跳出循环。 

例如: 

for (...)
{
	for (...)
	{
		for (...)
		{
			if (disaster)
				goto error;
		}
	}
}

error:

使用了goto语句可以直接跳转到error处,继续执行error后的语句。 

 此时如果想要跳出所有循环就需要使用三个break,在这种情况下如果使用goto语句可以更快捷。

注意:

如果goto语句使用不当 会导致在函数内部任意跳转,打乱程序的执行流程,所以对于goto语句的建议是能不使用尽量不使用

  • 26
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值