循环语句(循环结构)——“C”
创始人
2024-05-13 23:44:22
0

各位CSDN的uu们好呀,我又来啦,今天,小雅兰给大家介绍的是一个知识点,就是循环语句啦,包括while循环、do-while循环、for循环,话不多说,让我们一起进入循环结构的世界吧

首先,我们先来想一下,为什么需要循环控制?

   在日常生活中,或是在程序所处理的问题中,常常遇到需要重复处理的问题 

  •    要向计算机输入全班50个学生的成绩
  •    分别统计全班50个学生的平均成绩
  •    教师检查30个学生的成绩是否及格

例如:全班有50个学生,统计各学生三门课的平均成绩

 输入学生1的三门课成绩,并计算平均值后输出

scanf("%f %f %f",&s1,&s2,&s3);

aver=(s1+s2+s3)/3;

printf("avver=%7.2f",aver);

 输入学生2的三门课成绩,并计算平均值后输出

scanf("%f %f %f",&s1,&s2,&s3);

aver=(s1+s2+s3)/3;

printf("avver=%7.2f",aver);

要对50个学生进行相同的操作,就意味着上述三行代码需要执行50次,如果没有循环,那么上述三行代码就要重复50次,这样显得代码冗余

  •    大多数的应用程序都会包含循环结构
  •    循环结构、顺序结构和选择结构是结构化程序设计的三种基本结构,它们是各种复杂的基本结构单元

while语句的一般形式如下

   while(表达式)

      循环语句;

while循环的特点是:先判断条件表达式,后执行循环体语句

下面,我给大家举个例子,来让大家更好地理解while循环


  例1:求1+2+3+......+100

    解题思路:

  •         这是累加问题,需要先后将100个数相加
  •         要重复100次加法运算,可用循环实现
  •         后一个数是前一个数加1而得
  •         加完上一个数i后,使i加1可得到下一个数
#include
int main()
{int i=1;int sum=0;while(i<=100){sum=sum+i;i++;}printf("sum=%d\n",sum);return 0;
}

下面,我们再来看一个知识点,就是while语句中的break和continue

#include
int main()
{int i=1;while(i<=10){if(i==5)break;printf("%d ",i);i=i+1;}return 0;
}

这里程序的输出结果为1 2 3 4

break在while循环中的作用:

其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。

所以:while中的break是用于永久终止循环的。

所以,当i==5时,break终止本次循环,故而只打印了1 2 3 4

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

这里程序的输出结果为1 2 3 4 死循环

continue在while循环中的作用就是:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分

进行下一次循环的入口判断。

所以,当i==5时,continue直接跳过while循环后面的语句,跳转到循环的入口判断,从而导致死循环的结果。


然后,我们再来看一段和continue有关的代码

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

这段代码的输出结果为2 3 4 6 7 8 9 10 11

continue只会跳过本次循环后面的代码


用do-while语句实现循环

  do-while语句的特点:先无条件地执行循环体,然后判断循环条件是否成立

  do-while语句的一般形式为:

                  do

                        循环语句;

                  while(表达式);

例2:用do-while语句求:1+2+3+......+100

#include
int main()
{int i=1;int sum=0;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d\n",sum);return 0;
}

例3:输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数

#include
int main()
{char ch=0;int letters=0;int space=0;int digit=0;int other=0;printf("请输入一行字符:\n");while((ch=getchar())!='\n'){if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){letters++;}else if(ch==' '){space++;}else if(ch>='0'&&ch<='9'){digit++;}else other++;}printf("字母数为:%d\n空格数为:%d\n",letters,space);printf("数字数为:%d\n其它字符数为:%d\n",digit,other);return 0;
}

for循环

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

          循环语句;

表达式1

表达式1为初始化部分,用于初始化循环变量的。

表达式2

表达式2为条件判断部分,用于判断循环时候终止。

表达式3

表达式3为调整部分,用于循环条件的调整。


break和continue在for循环中

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

这段代码的输出结果为1 2 3 4

与之前介绍的while循环中的break一样,这里面的break也是跳出整个循环,所以5及5之后的数字都不会再打印

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

但是这里面的continue就与我们之前所说的不太一样了,这里面的continue跳过循环后面的语句,回到i++,进行循环条件的调整,直到不满足i<=10

所以,这段代码的输出结果为1 2 3 4 6 7 8 9 10


for语句的循环控制变量

建议:

1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。

2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

      int i=0;

      //前闭后开的写法

      for(i=0;i<10;i++)

      {}

      //两边都是闭区间

      for(i=0;i<=9;i++)

      {}


                                                    死循环

永远不会退出的循环为死循环

for( ; ; )

{}


while(1)

{}


do

{

}while(1)


一般情况下,要极力避免死循环

  绝大多数程序不需要死循环。如果出现,往往都是bug

  时间过长的循环会造成”假死“效果,也要考虑解决


使用嵌套的循环体时,应注意以下问题:

  在嵌套的各层循环体中,使用复合语句(即用一对花括号将循环体语句括起来)保证逻辑上的正确性

  内层和外层循环控制变量不应同名,以免造成混乱

  嵌套的循环最好采用右缩进格式书写,以保证层次的清晰性

  循环嵌套不能交叉,即在一个循环体内必须完整的包含着另一个循环


下面给大家拓展一个小小的知识点

 exit()函数

作用是终止整个程序的执行,强制返回操作系统

调用该函数需要嵌入头文件

 


 最后,我们再来小小地看一段代码

#include
int main()
{int i=0;int k=0;for(i=0,k=0;k=0;i++,k++){k++;}return 0;
}

问题是:请问要循环多少次?

别看这段代码看上去简单,但是如果粗心大意,错误仍为找上你。

这个k=0为条件判断部分,0为假,所以一次循环都不会进入

在C语言中,0表示假,非0表示真


好啦,循环语句的部分就到这里啦,今天小雅兰学到了超多知识,掌握了分支语句和循环语句,分支语句包括if语句和switch语句,循环语句包括while语句、do-while语句和for语句

很高兴能与uu们一起学到更多知识,有不足的还请各位大佬多多指点!!!

相关内容

热门资讯

开学第一天作文四年级300字... 篇一:开学第一天作文四年级300字16篇第一篇内容:开学第一天的新鲜感今天是开学的第一天,我早早地起...
我的妈妈四年级作文(实用6篇... 我的妈妈四年级作文 篇一:我的妈妈是最好的妈妈我的妈妈是一位非常了不起的妈妈。她是我的榜样和朋友。她...
金仓湖四年级作文(最新6篇) 金仓湖四年级作文 篇一秋天的金仓湖金仓湖是我家附近的一个美丽湖泊,它四季如春,我最喜欢的季节是秋天。...
我喜欢春天四年级优秀作文【最... 我喜欢春天四年级优秀作文 篇一春天是一年中最美丽的季节,我非常喜欢春天。春天来了,大地变得生机勃勃,...
四年级300字350字作文(... 四年级300字作文 篇一: 我最喜欢的动物我最喜欢的动物是熊猫。熊猫是中国的国宝,它们有着黑白相间的...
我自己作文600字(精选4篇... 我自己作文600字 篇一我的追梦之路人生如同一场漫长的旅行,每个人都带着自己的梦想踏上这个旅程。而我...
我心中的秘密作文四年级300... 我心中的秘密作文四年级300字63篇 篇一标题:小猫咪的秘密我家养了一只小猫咪,它是我心中的秘密。它...
捉螃蟹六年级作文(经典3篇) 捉螃蟹六年级作文 篇一:难忘的螃蟹之旅今年夏天,我和家人一起去了一个美丽的海边小镇度假。除了游泳、沙...
好样的,家乡菜四年级作文(实... 好样的,家乡菜四年级作文 篇一家乡菜是我最喜欢的美食之一。它不仅味道鲜美,而且富含各种营养成分。我想...
四年级期末作文【经典5篇】 四年级期末作文 篇一:我的暑假计划暑假就要到了,我已经迫不及待地想要开始我的暑假计划了。这个暑假,我...
温暖的时刻作文600字六年级... 温暖的时刻作文600字六年级 篇一温暖的时刻今天是一个特别温暖的日子,阳光明媚,微风轻拂,仿佛整个世...
多彩的活动六年级作文600字... 多彩的活动六年级作文600字 篇一喜迎运动会今天是我们学校年度盛事——运动会的日子,同学们都早早地来...
我想象中的六年级作文【实用3... 我想象中的六年级作文 篇一我的六年级生活六年级,对于我来说是一个充满期待和憧憬的年级。我想象中的六年...
珍惜资源六年级作文(精彩6篇... 珍惜资源六年级作文 篇一珍惜资源,从我做起我国资源状况非常严峻,各种资源的浪费现象屡见不鲜。作为一个...
我最害怕的事六年级作文【通用... 我最害怕的事六年级作文 篇一我的最大恐惧我叫小明,是一个六年级的学生。尽管我还小,但也有着自己最害怕...
小学六年级英语作文:The ... 小学六年级英语作文: The benefits of reading 篇一Reading is an...
小学六年级语文上册句子练习(... 小学六年级语文上册句子练习 篇一我最喜欢的动物我最喜欢的动物是猫。猫有着柔软的皮毛和敏捷的身手,总是...
宽容六年级作文(精简6篇) 宽容六年级作文 篇一:宽容的力量宽容是一种美德,它可以让人与人之间更加和谐,让世界变得更加美好。作为...
如何保护环境作文(实用3篇) 如何保护环境作文 篇一保护环境是我们每个人的责任。环境污染已经给我们的生活带来了很多问题,因此保护环...
我心目中的英雄六年级作文【通... 我心目中的英雄六年级作文 篇一我心目中的英雄英雄,对于每个人来说,可能有着不同的定义。但对我来说,我...