C语言-循环语句

1. 循环是什么?

首先,我们要学好循环语句就要先明白什么是循环。
在这里插入图片描述

我们知道,考就是一个循环往复,当还没有考过时,我们需要不停的练,这就是循环。

2. while循环

while语句
while循环由三部分组成:初始值,判断部分,调整部分

我们已经掌握了if语句

if (条件)
	语句;

//应用
if (1)
	printf("hehe");

当条件满足的情况下,if语句后的语句执行,否则不执行。
但是这个语句只会执行一次。
由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C语言中给我们引入了: while 语句,可以实现循环。

//while语法结构
while(判断表达式)
	循环语句:

如下:

while (1)
		print("hehe\n");

以上代码结果:
在这里插入图片描述
我们可以看到这是一个死循环,这是因为我们没有设定while循环三部分。


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

比如我们实现:
在屏幕上打印1-10的数字。

	int i = 1;				  	//初始值
	while (i <= 10)			 	//判断条件
	{
		printf("%d\n",i);
		i++;			  		//调整部分
	}

代码结果:1 2 3 4 5 6 7 8 9 10

2.1 while语句break和continue

	int i = 1;		//初始值
	while (i <= 10)	//判断条件
	{
		if (i == 5)
			break;
		printf("%d ",i);
		i++;		//调整部分
	}
	return 0;

代码结果:1 2 3 4

代码执行了四次之后,第五次进入循环时,遇到了break跳出了循环。

其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。

了解了break,再了解continue就非常简单了。
在while循环中,continue的作用是跳过本次循环。
跳转到while语句的判断部分,进行下一次循环入口处的判断。

我们来看continue的实际应用来加强对continue的理解

getchar获取一个字符
putchar输出一个字符
end of file缩写EOF —文件结束标志

#include <stdio.h>
int main()
{
	int ch = 0;

	//getchar获取一个字符放到ch里,!=检查两个操作数的值是否相等,如果不相等则条件为真
	while ((ch = getchar()) != EOF)
	{
		if (ch < '0' || ch >'9')
			continue;
		putchar(ch);
	}
	return 0;
}

这个代码的用途是:打印数字字符,而跳过其它的字符


3. for循环

我们已经知道了while循环,但是我们为什么还要一个for循环呢?
首先来看看for循环的语法

for语法:

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

表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。

同样也用for循环在屏幕上打印1-10的数字。

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

代码结果:1 2 3 4 5 6 7 8 9 10


3.1执行流程图

在这里插入图片描述

3.2 break和continue在for循环中

我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
但是还是有些差异:

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

执行结果:1 2 3 4 6 7 8 9 10

3.3 for语句的循环控制变量

这里我们有两点需要注意的点:
第一点:不可在for 循环体内修改循环变量,防止 for 循环失去控制。
第二点:建议for语句的循环控制变量的取值是”前闭后开的“。举个例子。

#include <stdio.h>
int main()
{
	int arr[10] = { 0 };
	int i = 0;
	for (i = 0; i <10; i++)	//这里的初始值"="就是闭区间,判断部分的"<"就是开区间
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

3.4 一些for循环的变种

for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题。

#include <stdio.h>
int main()
{
	//代码1
	//判断部分的省略 - 判断部分恒为真,可能会导致死循环
	for (;;)
	{
		printf("hehe\n");
	}
	
	//代码2
	int i = 0;
	int j = 0;
	int count = 0;
	//这里打印多少个呵呵
	for (i=0; i < 3; i++)
	{
		for (j=0; j < 3; j++)
		{
			printf("hehe\n");
			count++;
		}
	}
	printf("count = %d\n",count);
	
	//代码3
	int i = 0;
	int j = 0;
	int count = 0;
	//如果省略初始值,这里打印多少个hehe
	for (; i < 3; i++)
	{
		for (; j < 3; j++)
		{
			printf("hehe\n");
		}
	}
	printf("count = %d\n",count);

	//代码4
	int x, y;
	for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
	{
		printf("hehe\n");
	}
	return 0;
}

有兴趣的可以自己去编译器试一下

4. do-while循环

do-while语法:

do
	循环语句;
while(表达式);

4.1执行流程图

在这里插入图片描述

4.2 do语句的特点

同样也用do-while循环在屏幕上打印1-10的数字。
循环至少执行一次,使用的场景有限,所以不是经常使用。

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

while后的分号";"不可缺少。

4.3 do while循环中的break和continue

和while里的用法一致。

5.总结

上述三种循环语句的使用频率从大到小依次是:
for>while>do-while

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值