C语言 循环语句:while 语句,for 语句,do while 语句和其中的break、cotinue语句

循环语句:while 语句,for 语句,do while 语句和其中的break、cotinue语句

循环语句

在C语言中,同一件事需要执行很多次的时候,我们可以使用循环语句。
循环语句:while 语句,for 语句,do while 语句

while循环语句

while语句的语法结构为:
while (表达式)
{
循环语句;
}

while语句的执行流程:
在这里插入图片描述
例如实现屏幕打印输出0~10的数字。

#include <stdio.h>
int main()
{
	int i = 0;
	while (i <= 10)
	{
		printf ("%d\n",i);
		i++;//注意:i必须在循环内变化,否则程序会死循环。
	}
	return 0;
}

执行流程如下:
在这里插入图片描述

while语句中的break和continue

break介绍
如果想打印1~10中的1、2、3、4时,就需要用到break语句。
break代码实例:

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

输出:

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

执行流程如下:
在这里插入图片描述
break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有循环,直接终止循环。所以:while中的break是用永久终止循环,直接从while循环中跳出。

continue介绍
如果想打印1、2、3、4、6、7、8、9、10时就需要用到continue语句。
continue代码实例:

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

输出:

0
1
2
3
4

代码在输出4后,i++后i一直等于5,i一直进入if判断句,一直在执行continue语句,然后i一直等于5……程序一直处于死循环的状态。此时从continue跳到while语句的判断部分,一直判断,并没有对i进行调整。所以:要是循环变量的改变在continue下面,则循环变量还没来得及执行到变量调整语句,则循环变量不做调整,直接去判断语句,那么,程序将陷入死循环。
执行流程如下:
在这里插入图片描述
但是当把i++;放在continue;前面时:

#include <stdio.h>
int main()
{
	int i = 0;
	while (i <= 10)
	{
		i++;//此时还没打印i已经是从i+1 = 1开始了。
		if ( i == 5)
			continue;
		printf ("%d\n",i);
		
	}
	return 0;
}

输出:

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

执行流程如下:
在这里插入图片描述
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,二十直接跳转到while语句的判断部分,进行下一次循环入口的判断。

for循环语句

for循环的语法结构:
for (表达式1;表达式2;表达式3)
{循环语句;}

( for (初始化部分;条件判断部分;调整部分)
{循环语句;})

for循环中的表达式1 为初始化部分,用于初始化循环变量的。表达式2为条件判断部分,用于判断循环时候终止。表达式3为调整部分,用于循环条件的调整。
注意:不可以在for循环内部修改循环变量,防止for循环失去控制
建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

for语句的执行流程:
在这里插入图片描述

使用for循环在屏幕上打印0~10的数字。

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

输出:

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

流程示意图如下:
在这里插入图片描述
for循环的变种语句:
变种1:

	for ( ; ; )
	{
		printf ("HEHE\n");//无限打印HEHE
	}

由此可以看出:for循环中的3个表达式语句都可以省略,但是建议不要随意省略语句。

变种2:

#include <stdio.h>
int main()
{
	int x, y;
	for (x =0, y = 0; x < 2 && y < 5; ++x, y++)
	{
		printf("HEHE    ");//打印输出两个HEHE    HEHE
	}
	return 0;
}

由此可以看出:for循环中的3个表达式可以结合逗号表达使用。

for语句中的break和continue

for循环中也可以出现break和continue,它们的意义和在while循环中是一样的。但也有些差异。
break介绍
代码实例:

#include <stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i <= 10; i ++)
	{
		if (i == 5)
			break;//判断i==5后,执行break语句,直接终止循环
		printf ("%d\n",i);
	}
	return 0;
}

输出:

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

执行流程如下:
在这里插入图片描述
可以看到:for循环中判断i==5后,执行break语句,直接终止循环。
for中的break语句终止了整个循环,和while中的break语句意义相同,都是直接跳出循环。
continue介绍
代码示例:

#include <stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i <= 10; i ++)
	{
		if (i == 5)
			continue;//跳出输出5的循环,直接往后继续输出
		printf ("%d\n",i);
	}
	return 0;
}

输出:

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

执行流程如下:
在这里插入图片描述
for循环中的continue和while中的执行流程和意义不一样。for循环中的continue语句执行后,跳过for循环中continue后面所有语句,去执行调整语句,将循环变量做调整。所以for循环中的continue语句可以说是只跳过一次循环变量要执行的相关代码。而while循环中,要是循环变量的改变在continue下面,则循环变量还没来得及执行到变量调整语句,所以循环变量不做调整,直接去判断语句,那么,程序将陷入死循环。

continue在for循环和while循环中的辨析:

continue在for循环:跳过for循环中continue后面所有语句,去执行调整语句,将循环变量做调整。
continue在while循环:如果循环变量的改变在continue下面,则跳过下面的语句和调整语句,直接去判断语句,则程序死循环。

do while循环语句

do语句的语法:
do
{循环语句;}
while(表达式);

do while语句的特点说明:
循环至少执行一次,适用的场景有限,所以不是经常使用。
do while是先做do操作,执行循环语句,然后再进行while判断。

do while 语句的执行流程图:
在这里插入图片描述

代码实例:

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

输出:

10
请按任意键继续. . .

执行流程如下:
在这里插入图片描述
可以由输出结果看到,do while语句是先执行do后面的循环语句,再进行while判断,也就是说do while语句,至少在程序中会执行一次。

do while 循环中的break和continue

break介绍:
代码实例:

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

输出:

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

执行流程如下:
在这里插入图片描述
可以看出,do while中的break作用是跳出循环,跟for循环、while循环中的break作用一样。

continue介绍
代码实例:
循环条件在continue后面:

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

输出:

0
1
2
3
4

当循环条件在continue前面时:

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

输出:

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

可以看出,do while中,当循环条件在continue后面时,打印输出了1 2 3 4和死循环,当循环条件在continue前面时,打印输出1 2 3 4 6 7 8 9 10。continue在do while中和在while中的意义一样。具体可以参考前面while中continue的执行流程和解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值