【C语言】循环结构(while,for,do-while),break和continue语句,goto语句

本文详细介绍了C语言中的三种循环结构——while、for和do-while,以及break和continue语句的用法。while循环先判断条件再执行,for循环则包含初始化、判断和调整三部分,do-while确保循环体至少执行一次。break用于永久终止循环,continue则是跳过当前循环的剩余部分。此外,还讨论了goto语句在特定情况下的使用及其潜在问题。
摘要由CSDN通过智能技术生成

循环结构:

根据条件进行多次执行相同的或相似的代码
在C语言中,有三种循环结构whilefordo-while

while

while语句的结构和if语句很相似

while(表达式)
  语句;

执行流程

在这里插入图片描述
首先就行表达式判断,结果为0则结束循环,不为0则继续循环语句,直到下一次判断。
打印1~10

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

for

for循环是最常用的循环,语法如下:

for(表达式1; 表达式2; 表达式3)
 	语句;

表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整

执行流程

在这里插入图片描述
大体与while一致,不过多了个初始化,初始化只会执行一次,然后根据表达式判断是否执行流程,若执行则同时对变量进行调整。
打印1~10

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

while与for的对比

在这里插入图片描述
在这里插入图片描述
红黄蓝部分分别是初始化,判断变量调整三个部分,我们可以明显看到,for循环的三个部分更加集中,则非常利于代码的调整,维护,所以形式上for循环更加占优。

do-while

除了forwhile,还有do-while循环,这种用的最少。

do
  语句;
while(表达式)

执行流程

在这里插入图片描述
它和前面两种循环都不同,do-while循环是先进行一次循环,再进行判断。所以 do-while 语句中循环体至少执行一次。

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

break和continue

break和continue作用都是中止循环,但不相同
break的作用是永久的终止循环,只要 break 被执⾏,直接就会跳出循环,继续往后执行。
continue 的作用是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。
举个例子:

while中的break和continue

int main()//break
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break;  //i==5后,终止循环,跳出循环,继续往下运行
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
} //1 2 3 4 
int main()//continue
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;  //i==5后,不终止循环,只跳出本次循环,继续进行下一次循环
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
} //1 2 3 4 

continuewhile循环中的作用就是跳过本次循环中continue后边的代码,继续进⾏下⼀次循环的判断。
可以看出,如果循环调整是在continue之后,可能会造成死循环。

for中的break和continue

int main()//break
{
	int i = 1;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;//与while循环中的break作用一样,都是终止并跳出循环.
		printf("%d ", i);
	}
	return 0;
}//1 2 3 4 
#include <stdio.h> //continue
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

所以for 循环中continue的作用是跳过本次循环中 continue 后的代码,直接去到循环调整部分。
总的来说就是for的continue会直接进入循环调整,而while的continue不会,使用的时候要当心。

do while循环中的break和continue

do-while 语句中的 breakcontinue 的作用和 while 循环中的几乎⼀模⼀样,我就不多废话了。

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

goto语句

C语⾔提供了⼀种非常特别的语法,就是goto语句和跳转标号,goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。

#include <stdio.h>
int main()
{
	printf("银狼\n");
	goto next;
	printf("SILVER WOLF\n");

next:
	printf("跳过了SLILVER WOLF\n");
	return 0;
}

goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是 goto 语句也不是一无是处,在多层循环的代码中,如果想快速跳出使用 goto 就非常的方便了。

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

for 循环想提前退出得使⽤ break ,一个 break 只能跳出⼀层 for 循环,如果3层循环嵌套
就得使用3个 break 才能跳出循环,所以在这种情况下我们使用 goto 语句就会非常方便。

——————————————————————————————————————————————
感谢观看,希望对你有所帮助~
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值