“for“ “while“ “do while“循环

前言

在C语言当中循环是一个运用十分广泛的一种语法,本篇博客就要分别介绍一下C语言中间的三类循环

for循环

for循环在博主看来是最重,要最简便的一种循环,固定的格式,让程序员使用它的时候思路更加清晰,更加得心应手,下面我们来看看for循环的基本用法

int main()
{
	//输出1-10之间的数字
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);//1 2 3 4 5 6 7 8 9 10
	}
	return 0;
}

for循环里面有三个表达式for(表达式1;表达式2;表达式3)每一个表达式都用“;”隔开,记住哦,是分号,不是冒号!初学者很容易写成冒号。

  • 表达式1:循环的起始语句,代码中起始语句为,把1赋值给i。
  • 表达式2:循环的判断语句,代码中判断语句为,i小于等于10吗?如果满足就进入循环
  • 表达式3:循环的结束语句,代码中 结束语句为,i++(i = i + 1)及每次循环结束之后i的值加1.
    三个表达式极为重要的是表达式2和表达式3,我们来分析一下
    在这里插入图片描述
    如果没有表达式3,循环就会变成死循环,因为i永远是1,我们可以把表达式2当作循环的终止语句,而表达式3就是想尽一切办法,使得每次循环后,i能够贴近表达式2的终止条件。
    当然表达式1,表达式2,表达式3也都可以不写,例如:
    在这里插入图片描述
    都不写将会是无限循环下去,因为没有终止条件。
    也可以把表达式3写在循环的最后,运行结果和第一张图片一样的
    在这里插入图片描述
    所以我们要明白for循环的三个表达式不一定都要写,但是一定要有循环终止的条件和无限靠近循环终止的结束语。

while循环

while循环和for循环类似,核心点都是要有循环终止和无限靠近循环终止的结束语句,但是while循环并没有for循环一样的固定格式,而只有一个判断语句,我们看下面的代码:

int main()
{
	//输出1-10之间的数字
	int i = 1;
	while (i<=10)
	{
		printf("%d ", i);//1 2 3 4 5 6 7 8 9 10
		i++; 
	}
	return 0;
}

while循环格式:while(判断语句),满足判断语句条件进入循环,但是他没有让你写循环结束语句,这需要你自己添加,如果忘了添加,这个循环就变成了死循环,所以while语句一样很重要的是,条件判断语句和结束循环语句,基本用法和for循环一致,可以说是两种形态的亲兄弟,没有什么特殊的地方,所以博主在这里推荐大家使用for循环
在这里插入图片描述
但是while循环真的没有什么特殊的地方吗?其实也不全是,当你写代码积累一定数量会发现,当你不清楚循环结束标志的时候,一般用while循环会更好,可以先写一个死循环,然后满足条件直接跳出循环即可,例如;

int main()
{
	int i = 0;
	while (1)//1.当我们不知道循环结束条件时候先写1,让while死循环,先循环起来
	{
		if (满足条件)//3.再接着当循环满足一定的条件,我们直接用if判断
		{
			//.....
			break;//4.之后直接break跳出循环就可以,相当于这里是循环结束的出口
		}
		//......
		//......//2.之后我们在循环里面完成循环内容
		//......
		//......
		printf("%d ", i);
		i++;
	}
	return 0;
}

可能会有人觉得这样做有点多此一举,但很多时候都会用到这种方法,这种方法是根据自己的思路一步步走,会让你思路更加清晰。

do while循环

do while循环和前面的for循环while循环就不太一样,此循环有一个很重要的性质,先循环,再判断,而for循环和while循环都是先判断,满足要求之后再循环,我们来看下面的代码;

int main()
{
	//打印1-10之间的数字
	int i = 1;
	do
	{
		printf("%d ", i);//1 2 3 4 5 6 7 8 9 10
		i++;
	} while (i<=10);
	return 0;
}

do while循环格式为do{}while(判断条件);,可以看到他的判断条件是放在执行的最后,所以他先会执行一遍之后再做判断,无论满不满足要求,第一遍一定会执行,基于do while 的性质,我们用它用的非常少,只有特殊情况,比如说,一个游戏程序的开始,我们会用到,当你运行了这个程序,第一次就必须进去,开始游戏的选择,当你选择退出,判断语句判断之后即可退出。对于此循环我们了解会用即可。

在文章的最后,我们再来了解一下和循环密不可分的“break”语句和’continue"语句

  • break语句:结束最近的整个循环,记住!是结束整个循环,无论怎样,不在循环下去。例如:
int main()
{
	for (int i = 1; i <= 10; i++)
	{
		if (i == 5)
		{
			break;
		}
		printf("%d ", i);//1 2 3 4
	}
	return 0;
}

当我们i逐步变大,变为5的时候进入if语句,执行了break语句,就会跳出这整个循环,不再继续下去,所以打印出来的之后1-4。

  • continue语句:结束此次循环,继续下一轮循环,我们来看代码实现:
int main()
{
	for (int i = 1; i <= 10; i++)
	{
		if (i == 5)
		{
			continue;
		}
		printf("%d ", i);//1 2 3 4 6 7 8 9 10
	}
	return 0;
}

当循环i变成5的时候,进去if循环,执行continue语句,跳过此次循环,continue下面的所有语句不再执行,所以就没有打印5这个数字,但是他没有跳出整个循环循环还在继续,只是这次的循环不再进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值