《第5章循环程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章循环程序设计.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容While循环的执行过程:while(表达式)循环体语句;5.1 当型循环while第5章循环程序设计表达式循环体假(0)真(非0)while目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计n用法说明:n当型循环结构,先判断表达式,后执行循
2、环体n循环体内必须改变循环条件,使其趋于结束n循环体有可能一次也不执行n下列情况,退出while循环n条件表达式不成立(为零)n循环体内遇break,goton无限循环:while(1)循环体;5.1 当型循环while目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例用while循环求#includevoidmain()inti,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;printf(%d,sum);循环初值循环终值循环变量增值循环条件循环体5.1 当型循环while目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容
3、讲课内容第5章循环程序设计do-while循环的格式:5.1 直到型循环do-whiledo 循环体语句 while(表达式);n说明:ndo和while联合使用n以do开始、while结束,“;”不可省略nWhile后的表达式,可为任意合法的表达式(多为关 系表达式或逻辑表达式)n循环体可为任意类型语句目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计do-while循环的执行流程 do 循环体语句;while(表达式);5.1 直到型循环do-whiledo循环体表达式假(0)真(非0)while目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内
4、容第5章循环程序设计n用法说明:直到型循环,先执行循环体,后判断表达式直到型循环,先执行循环体,后判断表达式循环体内必须改变循环条件,使其趋于结束至少执行一次循环体 do-while可转化成while结构 5.1 直到型循环do-whileexpr循环体假(0)真(非0)循环体While循环目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容 5.1 直到型循环do-while例用do-while循环求#include void main()int i,sum=0;i=1;do sum+=i;i+;while(i=100);printf(%d,sum);第5章循环程序设计目标要求目
5、标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计 5.1 直到型循环do-while例 while和do-while循环的比较#include void main()int sum=0,i;scanf(%d,&i);while(i=10)sum=sum+i;i+;printf(sum=%dn,sum);#includevoidmain()intsum=0,i;scanf(%d,&i);dosum=sum+i;i+;while(i=10);printf(sum=%dn,sum);循环前的循环前的初始值初始值循环体循环体内必须内必须改变循改变循环条件环条件表达式表达式第一次
6、第一次是否值是否值为真为真目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计当型循环结构与直到型循环结构的区别和联系:l在当型循环中,其循环体可以一次也不执行;直到型循环中,循环体至少执行一次;l不管是当型循环结构还是直到型循环结构,在循环体内部必须要有改变条件的语句,否则将造成死循环。l当型循环和直到型循环可以通用。l不管是当型循环还是直到型循环结构,其循环体如果包含一个以上的语句,应以复合语句形式出现。5.1 直到型循环do-while目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计for循环的基本格式:5.2 for循环f
7、or(表达式1;表达式2;表达式3)循环体语句;1.在圆括号中通常包含三个表达式;在圆括号中通常包含三个表达式;2.各表达式用各表达式用“;”隔开;隔开;3.在在for后面的循环体,在语法上要求是一条语句,后面的循环体,在语法上要求是一条语句,若需要多条语句,应用花括号构成复合语句;若需要多条语句,应用花括号构成复合语句;4.“使用灵活使用灵活”特别适合于循环次数已知的情况特别适合于循环次数已知的情况目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计for循环的执行流程图:5.2 for循环expr2循环体假(0)真(非0)forexpr1expr3目标要求目标
8、要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计5.2 for循环例用for循环求main()inti,sum;sum=0;for(i=1;i=100;i+)sum+=i;printf(“sum=%d,sum);目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计5.2 for循环vfor语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环体语句;v说明:lfor语句中三个表达式类型任意,都可省略,但分号“;”不可省(见下页)l无限循环:for(;)lfor语句可以转换成while结构表达式1;while(表达式2)循环体语
9、句;表达式3;目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计分析如下程序:5.2 for循环voidmain()inti;for(i=0;i10;i+)printf(“*”);voidmain()inti=0;for(;i10;i+)printf(“*”);voidmain()inti;for(i=0;i10;)printf(“*”);i+;voidmain()inti=0;for(;i10;)printf(“*”);i+;voidmain()inti=0;for(;i10;printf(“*”),i+);目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课
10、内容讲课内容例 用for循环求n!。即计算123n的值。5.2 for循环#includevoidmain()intk,s,n;s=1;printf(Entern:);scanf(%d,&n);for(k=1;k=n;k+)s=s*k;printf(s=%dn,s);第5章循环程序设计目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容n三种循环可以互相代替 n循环变量初始化的位置n控制循环变量改变,使循环趋于结束n循环体都可以使用复合语句n可以用break语句跳出循环,用continue语句结束本次循环 5.2 for循环第5章循环程序设计目标要求目标要求课后作业课后作业讲课提纲
11、讲课提纲讲课内容讲课内容第5章循环程序设计l使用格式:break;l使用说明:在循环语句和switch语句中,终止并跳出循环体或switch语句体break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中5.3 break语句目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容 break的流程控制:5.3 break语句dobreak;.expr假(0)真(非0)while表达式break;假(0)真(非0)while表达式2break;.假(0)真(非0)for表达式1表达式3第5章循环程序设计目标要求目标要求课后作业课后作业讲课提
12、纲讲课提纲讲课内容讲课内容5.3 break语句#includevoidmain()inti,sum=0;for(i=1;i1000)break;printf(i=%d,sum=%dn,i,sum);运行结果:i=45,sum=1035 第5章循环程序设计例:求,但和值大于1000须退出。目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计l使用格式:continue;l使用说明:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中5.3 continue语句目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容con
13、tinue的流程控制:5.3 continue语句真(非0)docontinue;.表达式假(0)while表达式continue;假(0)真(非0)while表达式2continue;.假(0)真(非0)for表达式1表达式3第5章循环程序设计目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容例:输出0100之间的偶数#include void main()int x;for(x=0;x=100;x+)if(x%2=1)continue;printf(%d ,x);continue语句后只终止本次循环;break语句后将无条件地结束整个循环,二者幅度不一样;5.3 contin
14、ue语句第5章循环程序设计目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计循环的嵌套v三种循环可互相嵌套,层数不限,内外层循环需要设置不同的循环变量v外层循环可包含两个以上内循环v嵌套循环的执行流程5.3 循环的嵌套(1)while()while()(2)dodowhile();while();(3)for(;)for(;)(4)while()dowhile();(5)for(;)while()(6)dofor(;)while();v 二重循环的结构(for语句)for(表达式1;表达式2;表达式3)语句1;for(表达式4;表达式5;表达式6)语句2;语句3
15、;目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例 使用双层for循环打印下面的图形 5.3 循环的嵌套 *#includevoidmain()inti,j,k;for(i=0;i=4;i+)for(k=1;k=i;k+)printf();for(j=0;j=4;j+)printf(*);printf(n);内循环外循环目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例:输入一个整数,将各位数字反转后输出。如输入32541,则输出14523。5.4 程序举例#inlclude void main()long n;printf
16、(Enter a number(=0):);scanf(%ld,&n);printf(The number in reverse order is);do printf(%d,n%10);n/=10;while(n!=0);目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例:求Fibonacci数列:1,1,2,3,5,8,的前40个数,每行输出5个数。5.4 程序举例f1=1(n=1)f2=1(n=2)fn=fn-1+fn-2(n3)1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6
17、765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 022887 9227465 14930352 24157817 39088169 63245986 102334155目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计位置号:1 2 3 4 5 6 7 数列:1 1 2 3 5 8 13 5.4 程序举例第4次循环(i=6):第1次循环(i=3):f1f2ff1f2f1f2ff+第2次循环(i=4):第3次循环(i=5):f2
18、f2fff1+f1+第5次循环(i=7):目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计#include void main()int i;long f1,f2,f;f1=1;f2=1;printf(n%12ld%12ld,f1,f2);for(i=3;i=40;i+)f=f1+f2;printf(%12ld,f);if(i%5=0)printf(n);f1=f2;f2=f;5.4 程序举例目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例:例:输入一个整数,求出它的所有因子。输入一个整数,求出它的所有因子。main()lo
19、ngn,i;printf(nEnterapositiveinteger:);scanf(%ld,&n);printf(nNumber%ldFactors:,n);for(i=1;i=n;i+)if(n%i=0)printf(%ld,i);5.4 程序举例目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例:判断m是否是素数。#include#includevoidmain()intm,i,k;scanf(%d,&m);k=sqrt(m);for(i=2;i=k;i+)if(m%i=0)break;if(i=k+1)printf(“%d是素数n,m);elsepr
20、intf(“%d不是素数n,m);5.4 程序举例目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计例:编程把从终端输入的一行字符中所有的小写字母转换成大写字母,其它字符不变。程序如下:#includevoidmain()charch;while(ch=getchar()!=n)if(ch=a&ch=z)ch=ch-a+A;putchar(ch);putchar(n);5.4 程序举例目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第5章循环程序设计lWhile循环是“当型”循环,先判断后执行ldo-while语句是“直到型”循环,先执行后判断lFor语句使用灵活,常用于循环次数已知的情况l三种循环可以替换,可以嵌套l注意:循环变量初值、循环条件、循环体的控制lbreak语句用于结束整个循环;lcontinue语句用于结束本次循环5.5 小结