c5循环结构程序设计解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《c5循环结构程序设计解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c5 循环 结构 程序设计 解析 课件
- 资源描述:
-
1、1第五章第五章 循环结构程序设计循环结构程序设计 教学目标教学目标掌握掌握whilewhile语句、语句、do-whiledo-while语句和语句和forfor语句的使用;语句的使用;掌握循环嵌套的运用;掌握循环嵌套的运用;掌握设计循环程序的递推法和穷举法;掌握设计循环程序的递推法和穷举法;了解了解gotogoto语句和用语句和用gotogoto语句构成循环结构的方法;语句构成循环结构的方法;了解了解breakbreak语句和语句和contiunecontiune语句在循环体中的作用。语句在循环体中的作用。基本要求基本要求 能够正确地理解和描述控制循环的表达式,能够正能够正确地理解和描述控制
2、循环的表达式,能够正确地使用确地使用forfor、whilewhile和和do-whiledo-while这三种循环来解决实际这三种循环来解决实际问题。问题。11/14/2022 15:14:19长江大学计算机科学学院2 循环结构的特点:循环结构的特点:在给定条件在给定条件(循环条件循环条件)成立时,反复成立时,反复执行某程序段执行某程序段(循环体循环体),直到给定条件不,直到给定条件不成立时为止。成立时为止。循环的实现方式:循环的实现方式:1.用用goto语句和语句和if语句构成循环。语句构成循环。2.用用while循环语句。循环语句。3.用用do-while循环语句。循环语句。4.用用fo
3、r循环语句。循环语句。11/14/2022 15:14:20长江大学计算机科学学院35.1 goto语句及用语句及用goto语句构成循环语句构成循环 1.语句标号语句标号 语句标号就是给程序中的某一个语句定义的标号,可以语句标号就是给程序中的某一个语句定义的标号,可以是任意合法的标识符(是任意合法的标识符(注意:不能用整数注意:不能用整数)。)。C程序中的任何一个可执行语句之前都可以加上语句标程序中的任何一个可执行语句之前都可以加上语句标号。例如号。例如:stop:printf(ENDn);语句标号和语句之间用冒号分隔。语句标号和语句之间用冒号分隔。语句标号常用作为语句标号常用作为goto语句
4、的转向目标。如:语句的转向目标。如:goto stop;如果程序中没有用如果程序中没有用goto语句改变程序的执行顺序,也就语句改变程序的执行顺序,也就没有必要出现语句标号。没有必要出现语句标号。11/14/2022 15:14:20长江大学计算机科学学院42.goto语句语句 goto语句称为无条件转向语句。语句称为无条件转向语句。一般形式为:一般形式为:goto 语句标号语句标号;作用:把程序的执行转移到语句标号所在的位作用:把程序的执行转移到语句标号所在的位置。置。注意:这个语句标号必须与此注意:这个语句标号必须与此goto语句在同语句在同一个函数之内。一个函数之内。goto语句不符合结
5、构化程序设计的原则,一般语句不符合结构化程序设计的原则,一般应避免使用。应避免使用。主要用途:主要用途:1.与与if语句一起构成循环结构。语句一起构成循环结构。2.能够大大地提高程序的执行效率时。能够大大地提高程序的执行效率时。11/14/2022 15:14:20长江大学计算机科学学院53.用用goto语句构成的循环结构语句构成的循环结构#include stdio.hvoid main()int n=0;char ch;printf(input a stringn);loop:ch=getchar();n+;if(ch!=n)goto loop;n=n-1;/*不要字符不要字符n*/pri
6、ntf(%d,n);goto语句通语句通常与条件语句常与条件语句配合构成配合构成条件条件转移语句转移语句,用,用来实现来实现构成循构成循环环或或跳出循环跳出循环等功能。等功能。例例5.1 统计统计从键盘输入的从键盘输入的一行字符的个一行字符的个数。数。11/14/2022 15:14:20长江大学计算机科学学院6例例5.2 输入一组数据求和输入一组数据求和#include void main()int number,sum=0;loop:scanf(%d,&number);sum+=number;if(number!=0)goto loop;printf(The total sum is%dn
7、,sum);从键盘输入完一组数据后,再输入一个从键盘输入完一组数据后,再输入一个0 0作作为为结束输入结束输入数据的数据的标志标志。11/14/2022 15:14:20长江大学计算机科学学院75.2 while循环语句循环语句由由whilewhile语句构成的循环称为语句构成的循环称为“当型当型”循环。循环。whilewhile循环的循环的一般形式一般形式如下:如下:while(while(表达式表达式)循环体语句循环体语句whilewhile语句的语句的执行过程执行过程:先计算先计算whilewhile表达式的值,当表达式的值为表达式的值,当表达式的值为非零时,便执行循环体语句,之后再计算
8、该表达非零时,便执行循环体语句,之后再计算该表达式的值,由此构成循环,直到有一次求得表达式式的值,由此构成循环,直到有一次求得表达式的值为零时才结束循环,并继续执行循环体语句的值为零时才结束循环,并继续执行循环体语句之外的后续语句。之外的后续语句。图图5.1 while循环流程图循环流程图11/14/2022 15:14:20长江大学计算机科学学院8#include void main()int n=0;char ch;printf(input a string:n);ch=getchar();while(ch!=n)n+;ch=getchar();printf(%d,n);用用while语句
9、改写例语句改写例5.1的程序的程序统计从键盘输入的一行字符的个数。统计从键盘输入的一行字符的个数。说明:说明:(1)while(1)while语句中语句中的表达式可以是的表达式可以是任意合任意合法的法的C C表达式。表达式。(2)(2)如果循环体语句是如果循环体语句是复合语句复合语句,一定要用,一定要用 括起来。括起来。(3)(3)在循环体语句中应在循环体语句中应该包含能够使循环趋于该包含能够使循环趋于结束的操作,以避免出结束的操作,以避免出现死循环。现死循环。11/14/2022 15:14:20长江大学计算机科学学院9例例5.3 编程求编程求1+2+3+100的值。的值。这是一个求这是一个
10、求累加和累加和的问题。设置的问题。设置2 2个变量个变量:i i:循环控制变量循环控制变量(也作为加数也作为加数),),初值为初值为1 1,每循环一次每循环一次i i的值增的值增1 1,一直循环到,一直循环到i i的值超的值超过过100100为止。为止。sumsum:存放这存放这100100个数的和值,先求个数的和值,先求0+10+1的的和并将其放在和并将其放在sumsum中,然后把中,然后把sumsum中的数加上中的数加上2 2再存放在再存放在sumsum中,依次类推。中,依次类推。sumsum累加的过程要放在循环体中,由计算累加的过程要放在循环体中,由计算机来判断所加的数是否已经超过机来判
11、断所加的数是否已经超过100100。11/14/2022 15:14:20长江大学计算机科学学院10#include void main()int i,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;/*变量i既作为循环变量,控制循环次数,*/*同时又作为实际变量(加数)使用。*/printf(sum=%dn,sum);例例5.3程序程序,求求1+2+3+100的值的值sum=0sum=0sum=0sum=0ii程序运行结果为程序运行结果为:sum=505011/14/2022 15:14:20长江大学计算机科学学院115.3 用用do-while语句构成的循环语
12、句构成的循环 由由do-whiledo-while语句构成的循环称为语句构成的循环称为“直到型直到型”循环循环。do-whiledo-while语句的一般形式:语句的一般形式:dodo 循环体语句循环体语句 while(while(表达式表达式);do-whiledo-while语句的执行过程语句的执行过程:先执行循环体语句,再求表达式的值,若表达式的值为先执行循环体语句,再求表达式的值,若表达式的值为“真真”(非非0)0)则再执行循环体语句,由此则再执行循环体语句,由此构成循环构成循环,直到表达,直到表达式的值为式的值为“假假”(0)(0)时结束循环。如图时结束循环。如图5.35.3所示。所
13、示。do-whiledo-while语句和语句和whilewhile语句的语句的区别区别在于在于do-whiledo-while是先是先执行循环体语句,后判断循环条件,因此执行循环体语句,后判断循环条件,因此do-whiledo-while至少要至少要执行一次循环体。执行一次循环体。11/14/2022 15:14:20长江大学计算机科学学院12#include void main()int i,sum;i=1;sum=0;do sum=sum+i;i+;while(i=100);printf(sum=%dn,sum);用用do-while语句改写例语句改写例5.3的程序的程序题目:求题目:求
14、1+2+3+1001+2+3+100的值的值注意注意:N_SN_S流程图的直到型循环结构的流程图的直到型循环结构的循环条件循环条件的描述方法的描述方法与与C C语言的语言的do-whiledo-while语句的语句的循环条件循环条件的测试方法稍有不同。的测试方法稍有不同。i=100i100i100时结束循环是同一概念的两时结束循环是同一概念的两种描述方式。种描述方式。sum=0sum=0sum=0sum=0ii这里这里一定要一定要有一个有一个分号分号11/14/2022 15:14:20长江大学计算机科学学院135.4 for语句和用语句和用for语句构成的循环语句构成的循环 forfor语句
15、的一般形式为:语句的一般形式为:for(for(表达式表达式1 1;表达式表达式2 2;表达式表达式3)3)循环体语句循环体语句forfor循环语句的执行过程是:循环语句的执行过程是:(1)(1)计算计算“表达式表达式1 1”的值。的值。(2)(2)计算计算“表达式表达式2 2”的值;的值;若其值为若其值为非零非零,转至,转至步骤步骤(3)(3);若其值为若其值为零零,则转至,则转至步骤步骤(5)(5)。(3)(3)执行一次循环体语句。执行一次循环体语句。(4)(4)计算计算“表达式表达式3 3”;然后转向;然后转向步骤步骤(2)(2),构成循环构成循环。(5)(5)结束循环结束循环,执行,执
16、行forfor循环之后的语句。循环之后的语句。11/14/2022 15:14:21长江大学计算机科学学院14for语句语句非常适合非常适合计数循环计数循环,其常规使用方法为,其常规使用方法为:“表达式表达式1 1”用来给循环变量赋初值或做一些初始工作;用来给循环变量赋初值或做一些初始工作;“表达式表达式2 2”用来作为判断循环是否结束的条件;用来作为判断循环是否结束的条件;“表达式表达式3 3”用来修改循环变量的值,使得循环能够趋于结用来修改循环变量的值,使得循环能够趋于结束。束。for语句的语句的常规常规使用方法使用方法#include void main()/*程序1*/int i,su
17、m;for(i=1,sum=0;i=100;i+)sum=sum+i;printf(sum=%dn,sum);“表达式表达式1 1”是逗号表达是逗号表达式式给循环变量赋初值给循环变量赋初值做一些做一些初始工作,准备累加!初始工作,准备累加!判断判断循环是否结束!循环是否结束!使使得得循环循环能够能够趋于结束。趋于结束。11/14/2022 15:14:21长江大学计算机科学学院15 从语法上来讲,从语法上来讲,三个表达式三个表达式都可以是都可以是任意合法的任意合法的C C表达式表达式,各表达式之间用各表达式之间用“;”隔开,并且这隔开,并且这三个表达式三个表达式都是都是任选项任选项。如下几种形
18、式的如下几种形式的forfor循环语句,都能正确地求出循环语句,都能正确地求出1+2+3+1001+2+3+100的值。的值。for语句的语句的非常规非常规使用方法使用方法#include#include void main()/void main()/*程序程序2 2*/intint i=1,sum=0;i=1,sum=0;for(for(;i=100;i+)i=100;i+)sum=sum+i;sum=sum+i;printf(printf(“sumsum=%dn=%dn”,sum);sum);表达式表达式1 1省略!省略!#include#include void main()/void
19、 main()/*程序程序3 3*/intint i=1,sum=0;i=1,sum=0;for(for(;i=100 i=100;)sum=sum+i;sum=sum+i;i+;i+;printf(printf(“sumsum=%dn=%dn”,sum);,sum);循环体语句是复合循环体语句是复合语句,花括号不能语句,花括号不能省省!表达式表达式1 1和和表达式表达式3 3都省都省略略!11/14/2022 15:14:21长江大学计算机科学学院16for语句的非常规使用方法语句的非常规使用方法2#include#include void main()/void main()/*程序程序4
20、 4*/intint i=1,sum=0;i=1,sum=0;for(for(;)sum=sum+i+;sum=sum+i+;if(i100)if(i100)gotogoto pendpend;pendpend:printf(printf(“sumsum=%dn=%dn”,sum);,sum);三个表达式三个表达式都被省略都被省略!分隔符分隔符“;”不能省。不能省。由于没有由于没有表达式表达式2 2,用,用gotogoto语句语句结束结束循环。循环。#include#include void main()/void main()/*程序程序5 5*/intint i,sum=0;i,sum=0
21、;for(for(i=1i=1;i=100 i=100;sum=sum+i+sum=sum+i+);printf(printf(“sumsum=%dn=%dn”,sum);,sum);循环体语句是一个空语句!循环体语句是一个空语句!11/14/2022 15:14:21长江大学计算机科学学院17注意注意在循环体语句之前不能有在循环体语句之前不能有分号分号#include void main()int i,sum=0;for(i=1;i=100;i+);sum=sum+i;printf(sum=%dn,sum);运行结果为:sum=101 循环体语句是一个循环体语句是一个空语句空语句!sum=s
22、um+i;只在循环结束以后才被执行到。11/14/2022 15:14:21长江大学计算机科学学院18例例5.4 求求n!。即计算。即计算123n的值。的值。分析:分析:该题的算法与该题的算法与累加求和累加求和的算法的算法基本相同基本相同。注意:注意:多个数相乘的多个数相乘的结果结果可能会可能会很大很大,所以在程序中采用,所以在程序中采用长整型变量长整型变量来存放乘积的值。来存放乘积的值。#include void main()int i,n;long s=1;printf(Enter n:);scanf(%d,&n);for(i=1;i=n;i+)s=s*i;printf(%d!=%ldn,
23、n,s);程序运行结果为:程序运行结果为:Enter n:66!=72011/14/2022 15:14:21长江大学计算机科学学院19例例5.5 编程计算多个圆的面积编程计算多个圆的面积 圆的半径从圆的半径从0.50.5mm开始开始,按增按增1 1 mm的的规律递增。规律递增。直接用半径直接用半径r r作为作为forfor语句的循环控制语句的循环控制变量,每循环一次使变量,每循环一次使r r的值增的值增1,1,直到直到r r大大于于5.55.5为止。为止。#include void main()float r,s;for(r=0.5;r=5.5;r+)s=3.14159*r*r;printf
24、(r=%f,s=%fn,r,s);变量变量r r具有具有双双重功能重功能,它既,它既是是循环控制变循环控制变量量,又是,又是圆的圆的半径值。半径值。循环循环体共执行体共执行6 6次,次,当当r r增到增到6.56.5时,时,条件表达式条件表达式r=5.5r=5.5的值为的值为0 0,从而退出循,从而退出循环。环。程序运行结果为:程序运行结果为:r=0.500000 s=0.785398r=1.500000 s=7.068577r=2.500000 s=19.634937r=3.500000 s=38.484478r=4.500000 s=63.617199r=5.500000 s=95.033
展开阅读全文