欢迎来到天天文库
浏览记录
ID:57631457
大小:878.00 KB
页数:30页
时间:2020-08-29
《C语言教案第5章.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、30第页l复习自增自减运算符和复合赋值表达式l新授第五章循环结构程序设计5.1循环语句概述以求1~100的累计和为例。根据已有的知识,可以用“1+2+……+100”来求解,但显然很繁琐。现在换个思路来考虑:首先设置一个累计器sum,其初值为0,利用sum+=n来计算(n依次取1、2、……、100),只要解决以下3个问题即可:(1)将n的初值置为1;(2)每执行1次“sum+=n”后,n增1;(3)当n增到101时,停止计算。此时,sum的值就是1~100的累计和。根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环
2、结构),C语言提供了3条循环语句来实现,以简化、并规范循环结构程序设计。在C语言中,可用以下语句实现循环:(1)用for语句。(2)用do-while语句。(3)用while语句。5.1循环语句概述5.2for语句和while语句5.3直到型循环do-while语句5.4break语句与continue语句5.5应用举例良好的源程序书写习惯──注释注意:30第页(4)用goto语句和if语句构成循环。使用goto语句实现求解1~100累计和的程序可以如下:main(){intn=1,sum=0; loop:sum+=n;n++;if(n<=100)
3、gotoloop;printf(“sum=%d”,sum);}其中“loop:”为语句标号(格式:标号:语句行),其命名遵循标识符命名规则。goto语句格式:goto标号,功能为:使系统转向标号所在的语句行执行。5.2while语句一、while语句(1)一般格式while(循环继续条件) {循环体语句组;}(2)执行过程执行过程如图5-2(P70)所示。1)求解“循环继续条件”表达式。如果其值为非0,转2);否则转3)。2)执行循环体语句组,然后转1)。3)执行while语句的下一条。显然,while循环是for循环的一种简化形式(缺省“
4、变量赋初值”和“循环变量增值”表达式)。[案例5.3]用while语句求1~100的累计和。/*案例代码文件名:AL5_3.C*/结构化程序设计方法,主张限制使用goto语句。因为滥用goto语句,将会导致程序结构无规律、可读性差。另外,从功能上说,for语句可完全代替当型循环语句while,所以该语句也不是必需的。上机时用P苏大63页的习题进行练习。30第页/*程序功能:求1~100的累计和*/main(){inti=1,sum=0;/*初始化循环控制变量i和累计器sum*/while(i<=100){sum+=i;/*实现累加*/i++;/*循
5、环控制变量i增1*/}printf(“sum=%d”,sum);}程序运行情况如下:sum=5050自编程序:求∑n!(n=1~20)main(){intn=0;doublet=1.0,sum=0.0;clrscr();while(n<20){n++;t*=n;sum+=t;}printf("∑%d!=%e”,n,sum);}5.3直到型循环do-while语句30第页1.一般格式do{循环体语句组;}while(循环继续条件);/*本行的分号不能缺省*/当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。2.执行过程执行过程如图5-3所
6、示。(1)执行循环体语句组。(2)计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非0(真),则转向(1)继续执行;否则,转向(3)。(3)执行do-while的下一条语句。do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。[案例5.4]用do-while语句求解1~100的累计和。/*案例代码文件名:AL5_4.C*//*程序功能:求1~100的累计和*/main(){inti=1,sum=0;/*定义并初始化循环控制变量,以及累计器*/do{sum+=i;/*累加*/i++;}while(i<=100);/*
7、循环继续条件:i<=100*/printf(“sum=%d”,sum);}以P苏大66页例6-6和P苏大726-9举例编写程序。根据情况选用一部分程序30第页do-while语句比较适用于处理:不论条件是否成立,先执行1次循环体语句组的情况。除此之外,do-while语句能实现的,for语句也能实现,而且更简洁。例:求5!循环次数fact*ii++11*1221!*2332!*3443!*4554!*56#include"stdio.h"/*03.c*/main(){inti,fact;i=1,fact=1;clrscr();do{fact=f
8、act*i;i++;}while(i<=5);printf("%d",fact);}(单步执行;监视:i、fact)3
此文档下载收益归作者所有