C语言学习3——第五章:循环结构程序设计

总述

学完第四章后,便马不停蹄的开始第五章循环了,一是为了解决之前好多不懂得问题,可以用这一章的知识解决,二也是问了一下其他学计算机的大一同学,快的已经学指针了,慢的也到数组了,所以我得加快步伐,现在的自学进度还是太慢。

在学习这一章之前呢,我被推荐了一个新的编译工具visual studio 2019,所以以下程序都是在vs 2019上面跑的,之前的vc++ 6.0成为了时代的眼泪,但因为刚接触vs 2019,也要熟悉一段时间新的环境。

话不多说,直接开始跑步进入第五章。

注:本博客所有知识点均出自C程序设计(第五版)

5.1为什么需要循环控制

第四章介绍了选择结构,但是我们在做题时发现,只有选择结构,很多程序都不能实现,所以我们需要学习循环结构。

循环结构顺序结构选择结构是结构化程序设计的3种基本结构,他们是各种复杂程序的基本构成单元

如下便为一个循环结构程序

#include<stdio.h>                              //编译预处理指令
int main()                                     //定义主函数
{
                                                 //函数开始
	int i = 1, sum = 0;                        //定义整型i=1.sum=0
	while (i <= 100)                           //当i小于等于100时循环
	{
   
		sum = sum + 1;                         //sum等于sum的值加1
		i++;                                   //i等于i的值加1
	}
	printf("sum=%d\n", sum);                   //输出sum=sum的值
	return 0;                                  //函数值返回0
}                                              //函数结束

5.2用while语句实现循环

5.1中的循环结构,就是用的最基本的while循环,下面就来介绍一下while循环。

while语句的一般形式如下:
while(表达式)语句

其中“语句”就是循环体,循环体只能是一个语句(简单或复合都行)。

“表达式”被称为循环条件表达式

while的执行流程:只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句。

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

再次看一下这个程序

#include<stdio.h>                              //编译预处理指令
int main()                                     //定义主函数
{
                                                 //函数开始
	int i = 1, sum = 0;                        //定义整型i=1.sum=0
	while (i <= 100)                           //当i小于等于100时循环
	{
   
		sum = sum + 1;                         //sum等于sum的值加1
		i++;                                   //i等于i的值加1
	}
	printf("sum=%d\n", sum);                   //输出sum=sum的值
	return 0;                                  //函数值返回0
}                                              //函数结束

(1)如果循环体包含一个以上的语句,就要用花括号括起来,作为复合语句出现。如果不加花括号,则while语句的范围只到while后面的第一个分号处。
(2)循环之前,要给i和sum赋初值。
(3)在循环体中应有使循环趋向结束的语句。

5.3用do···while语句实现循环

do···while是c语言除了while外提供的另外一种语句来实现循环结构,大致和while差不都,有几小点不一样。
直接看程序比较好理解,如下

#include<stdio.h>                  //编译预处理指令
int main()                         //定义主函数
{
                                     //函数开始
	int i = 1,sum = 0;             //定义整型i,sum并赋值
	do                             //do循环先执行一道
	{
   
		sum = sum + 1;             //sum等于sum的值加1
		i++;                       //i自加1
	}
	while (i <= 100);              //判断i小于等于100的真假看是否循环
	printf("sum=%d\n", sum);       //输出sum=sum的值
	return 0;                      //函数值返回0
}                                  //函数结束

注:do···while语句的特点是,先无条件的执行循环体,然后判断循环条件是否成立。(就是这里与while不一样,可以理解一下)

根据程序我们也可以看出do···while的一般形式:
do
语句
while(表达式);

区分while和do···while:当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同;否则,二者结果的不相同(指二者具有相同的循环体的情况)。

5.4用for语句实现循环

for语句是比while和do···while更为灵活的语句,可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以替代while语句。

for语句的一般形式:
for(表达式1:表达式2:表达式3)
语句

表达式1:设置初始条件,只执行一次。
表达式2:是循环条件表达式,用来判定是否继续循环。
表达式3:作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。

所以for可以写成如下:
for(循环变量赋初值;循环条件;循环变量增值)
语句

以上我们可以看到,for语句比前面两个更加简单,方便。并且完全可以替代前两个语句。

注:for语句中的三个表达式可省略,但分号不能省略,且省略后要保证循环能正常进行,就得在之前完成这些操作。
如:for(i=1;i<=100;i++)可以改写成
i=1;
for(;i<=100;i++)

很直观,后面两个语句也可以这样省略。但一定要保证循环能正常进行

5.5循环的嵌套

一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层嵌套。(好家伙,套娃)

3种循环(while循环,do···while循环和for循环)可以互相嵌套。

5.6几种循环的比较

(1)3中循环都可以用来处理同一问题,一般情况下他们可以互相代替
(2)for语句的功能更强,凡用while循环能完成的,用for循环都能实现。
(3)用while和do···while循环时,循环变量初始化的操作应在while和do···while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。
(4)while循环,do···while循环和for循环都可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue会在5.7介绍)。

5.7改变循环执行的状态

5.7.1用break语句提前终止循环

break语句可以提前终止循环,如下

#include<stdio.h>                              //编译预处理指令
#define SUM 100000                             //指定符号常量SUM代表100000
int main()                                     //定义主函数
{
                                                 //函数开始
	float amount, aver, total;                 //定义单精度浮点数amount,aver,total
	int i;                                     //定义整形i
	for (i = 1, total = 0; i <= 1000; i++)     //for循环语句1:赋值i=1,total=0;语句2:如果i小于等于1000执行循环;语句三:循环结束后i自加1
	{
   
		printf("please enter amount:");        //输出please enter amount:
		scanf_s("%f", &amount);                //输入单精度浮点数赋到amount的地址
		total = total + amount;                //total等于total+amount的值
		if (total >= SUM)                      //如果total大于SUM
			break;                             //跳出该循环
	}
	aver = total / i;                          //aver等于total除以i
	printf("num=%d\naver=%10.2f\n", i, aver);  //输出num=i的值,aver为十个字节两位小数的aver的值
	return 0;                                  //函数值返回0
}                   
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第五版《C语言程序设计》第5章是关于循环结构学习内容,可以在CSDN上找到思维导图来帮助学习。 思维导图是一种图形化的方法,用于展示知识的关联和结构。通过将相关概念用图形化方式展示,思维导图可以帮助我们更好地理解和记忆知识点。 在CSDN上搜索第五版《C语言程序设计》第5章思维导图,可以找到一些概括了该章节重要知识点的图表。这些思维导图通常使用文字、图形和箭头等元素,以清晰而简洁的方式呈现循环的概念、语法和应用。 通过观看这些思维导图,我们可以获取基本的循环语句的语法知识,包括for循环、while循环和do-while循环。同时,这些图表还会涵盖循环的控制和嵌套循环的相关内容。 在学习循环结构时,思维导图可以作为一个辅助工具,帮助我们理清思路、记忆知识点以及加深对循环的理解。可以通过结合思维导图和课本的内容来进行学习,将图表中的相关概念与具体的代码实例进行对照,加深对循环的掌握。 在C语言编程学习的过程中,使用思维导图可以提高学习效率,帮助我们更快地掌握和运用循环结构的知识。可以将思维导图作为学习的参考资料,加深对C语言循环结构的理解和应用。 总之,通过在CSDN上找到第五版《C语言程序设计》第5章思维导图,我们可以利用这个工具更好地学习和掌握循环结构的知识。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值