【C语言】看一眼就让人醍醐灌顶的循环语句

       🔥🔥 欢迎来到小林的博客!!
      🛰️博客主页:✈️小林爱敲代码
      🛰️专栏:✈️C语言快速入门
      🛰️欢迎关注:👍点赞🙌收藏✍️留言
在这里插入图片描述

      这篇文章给大家介绍三大循环语句,以及break语句和continue语句的用法,给正在学习C语言的朋友们一点帮助。你们的支持是对我最大的鼓励🌺🌺

  
      每日一句: 每件事到最后一定会变成一件好事,只要你能坚持到最后。

大纲:

在这里插入图片描述

💖6. 循环语句

在生活中,我们经常需要进行一些重复的操作。比如在操场跑步时,每一圈就是一个循环。而程序里也有很多重复的操作,如果我们要输出1-100之间的每个数,如果把它们全打出来,那是非常麻烦的,所以我们可以使用循环语句。

💓6.2 while循环

🌺6.2.1 while循环的使用

while循环的使用格式:while(循环条件) {循环体;}
括号里面的是循环条件,而花括号里面,是要执行的内容。

代码:

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

这个代码可以执行,但运行出来会一直在屏幕打印0。根本原因是因为 a的值没有发生变化,导致 每次循环条件都是满足的,因此会死循环。要避免这种条件,我们必须要让循环条件在每次循环后更接近假。

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

而这样,每次循环结束后,a 都会自增一次,在循环10次后,a 就会等于10。此时 a < 10的条件不再满足,while循环判断条件为假。因此循环结束。
在这里插入图片描述

🌺6.2.2 while循环的执行流程

while循环的执行流程是 先判断 判断为真,执行。为假,退出循环。
在这里插入图片描述
也就是说,如果循环条件不为假,那么循环会一直进行下去,直到循环条件为假才会停下来。循环内容执行结束后,会重新进行条件判断。

1.进行条件判断,条件为真执行步骤2,为假执行步骤4
2.执行循环体内容
3.循环体内容执行完毕,跳到步骤1
4.退出循环

在这里插入图片描述

💓6.3 for 循环

for 循环和 while循环的执行流程并无太大区别。只是语法上有一些差异。

🌺6.3.1 for循环的使用

for循环的使用格式:for(变量初始化;循环条件;条件变化) {循环体;}
如果不理解的请先看以下for循环的代码。

代码:

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

变量初始化: int i = 0 ,就是初始化了一个变量i

循环条件: i < 10 意思是只要 i 小于 10 就循环

条件变化: i++ ,i每次自增,i离10就更近了一步,就意味离循环结束更近一步,也就是循环条件发生变化。

🌺6.3.2 for循环的执行流程

for循环的执行流程需要注意以下几点:

1.整个循环中变量只会初始化一次。
2.条件变化在循环体结束之后进行。

在这里插入图片描述

在这里插入图片描述

💓6.4 do while循环

do while循环和while循环只有一个区别,那就是do while 是先执行,再判断,而while 是先判断,再执行。

🌺6.4.1 do while循环的使用

我们刚刚说过,do while 循环是先执行,再判断的。这就意味着,无论如何,do while都至少会执行一次。第一次执行完后再进行条件判断,判断是否执行下一次。

#include<stdio.h>
int main()
{
	int a = 100;

	do
	{
		//循环体
		printf("%d ", a);
	} while (a < 1);

	return 0;
}

因为 a = 100,所以 while(a < 1)这个条件不会成立,但是这个程序依然会打印一次a,因为是先执行,后判断的。
在这里插入图片描述

🌺6.4.2 do while循环的执行流程

1.先执行循环体
2.条件判断,为真继续执行循环体,为假退出循环。

在这里插入图片描述

💓6.5 break语句

break是一个关键字,主要应用于2个场景
1.switch分支语句
2.循环语句

而在循环语句里,break的作用只有一个,那就是结束循环。

但是要注意的是,break只会跳出当前循环,在循环嵌套的情况下,它不会结束外层循环。

单层循环的情况:

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

	return 0;
}

我们在里面加了一个if判断,如果 i大于10,就break跳出循环。
在这里插入图片描述
我们可以看到当i=10的时候,循环就结束了,是因为满足了 i >10这个条件,执行了break语句。

break语句在while循环里也同样适用。

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

	return 0;
}

在这里插入图片描述
在do while语句也同样试用,这里就不演示了。

💓6.6 continue语句

continue语句和break语句同样是关键字。continue语句只能用在循环里面,continue语句的功能是结束本次循环,开始下一次循环。

我们来看看以下这一段代码

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

当i == 5 时,我们执行continue语句,让我们看看continue语句的效果。
在这里插入图片描述
我们会发现,5 没有打印出来,这是因为当i等于5的时候,continue语句直接结束了本次循环,开始了下一次循环,所以当 i = 5 时,continue下面的语句没有被执行。

如果我们把打印语句放在continue的上面呢?

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

那么 5 依旧会被打印出来,因为打印语句在continue的前面,它先被执行了,当执行到continue时,才会结束本次循环开始下一次循环。也就是说只有continue之后的语句,才不会被执行。
在这里插入图片描述


但是在while循环中使用continue,需要注意!条件的变化语句不能放在continue之后,否则会死循环!

例如下面这一段代码:
#include<stdui.h>

int main()
{
	int a = 0;
	while (a < 10)
	{
		printf("%d ", a);
		if (a == 5)
		{
			continue;
		}
		a++;
	}
	return 0;
}

我们可以看到,a++在continue之后,那么a++这条语句就不会被执行,那么程序就会死循环。
在这里插入图片描述

正确的做法是把a++放在continue之前。

#include<stdui.h>
int main()
{
	int a = 0;
	while (a < 10)
	{
		printf("%d ", a);
		a++;

		if (a == 5)
		{
			continue;
		}
	}
	return 0;
}

这样 避免了这个问题,所以在while语句里使用continue需要格外注意。for循环则不需要担心这个问题,因为条件变化是在循环体执行结束后才执行的。

💓6.7 循环嵌套

当然,循环之间也可以嵌套。就是在一个循环里面再套一个循环。

循环嵌套的代码 :

#include<stdio.h>
int main()
{
	for(int i = 0 ; i < 5;i++) //第一层循环
	{
		for (int j = 0; j < 5; j++)//第二层循环
		{
			printf("i = %d j = %d\n", i, j);
		}
	}
	return 0;
}

运行结果
在这里插入图片描述

也就是外层循环每执行一次,都会把内层循环整个执行一遍。所以 printf()执行的次数是 5 * 5,也就是执行了25次。

结言🥳:

💦💦如果有写的不好或者错误的地方,希望大家指证出来,我会不断的改正自己的错误。💯💯如果感觉写的还可以,可以点赞三连一波哦~🍸🍸后续会持续为大家更新大纲上的内容,以及数据结构,C++,Linux操作系统等方面的知识,本人会坚持持续更新。

🌺🌺你们的支持是我最大的动力,希望在往后的日子里,我们大家一起进步!!!
🌺🌺

  • 44
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 60
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林 子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值