C语言循环结构的程序设计.ppt

上传人:牧羊曲112 文档编号:5426304 上传时间:2023-07-05 格式:PPT 页数:34 大小:486.50KB
返回 下载 相关 举报
C语言循环结构的程序设计.ppt_第1页
第1页 / 共34页
C语言循环结构的程序设计.ppt_第2页
第2页 / 共34页
C语言循环结构的程序设计.ppt_第3页
第3页 / 共34页
C语言循环结构的程序设计.ppt_第4页
第4页 / 共34页
C语言循环结构的程序设计.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《C语言循环结构的程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言循环结构的程序设计.ppt(34页珍藏版)》请在三一办公上搜索。

1、第6章 循环结构的程序设计,循环结构:,当型循环结构,直到型循环结构,注:A可以是一个简单语句,也可以是一个基本结构,6.1 概述,C语言可实现循环结构的语句:用goto 和 if 构成循环while 语句do while 语句for 语句,goto语句一般格式:,goto 语句标号;标号:语句;,功能:无条件转移语句说明:不能用整数作标号只能出现在goto所在函数内,且唯一只能加在可执行语句前面限制使用goto语句,6.2 goto语句以及用goto语句构成循环,例 用if 和goto语句构成循环,求,/*c5_1.c*/#include main()int i,sum=0;i=1;loop

2、:if(i=100)sum+=i;i+;goto loop;printf(%d,sum);,分析:sum=sum+1=1sum=sum+2=1+2=3sum=sum+3=3+3=6sum=sum+4=6+4=10sum=sum+100=4950+100=5050,例 从键盘输入一组数据,以0结束输入,求数据和,/*c5_2.c*/#include main()int number,sum=0;read_loop:scanf(%d,一般形式:,while(表达式)循环体语句,执行流程:,6.3 while语句,此处无;,特点:先判断表达式,后执行循环体(当型)说明:循环体有可能一次也不执行循环体

3、可为任意类型语句下列情况,退出while循环:条件表达式不成立(为零)循环体内遇break,return,goto无限循环:while(1)循环体;,例 用while循环求,/*c5_3.c*/#include main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);,例 显示110的平方,/*c5_4.c*/#include main()int i=1;while(i=10)printf(%d*%d=%dn,i,i,i*i);i+;,运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*

4、8=649*9=8110*10=100,一般形式:,do 循环体语句 while(表达式);,执行流程:,6.4 do-while语句,此处有;,特点:先执行循环体,后判断表达式(直到型)说明:至少执行一次循环体do-while可转化成while结构,例 用dowhile循环求,/*c5_5.c*/#include main()int i,sum=0;i=1;do sum+=i;i+;while(i=100);printf(%d,sum);,例 while和dowhile比较,/*c5_6_1.c*/#include main()int i,sum=0;scanf(%d,/*c5_6_2.c*

5、/#include main()int i,sum=0;scanf(%d,结论:当 while后的表达式第一次的值为“真”时,两种结果相同,否则不同。,一般形式:,for(表达式1;表达式2;表达式3)循环体语句,执行流程:,6.5 for语句,1.先求解表达式1;2.求解表达式2,若其值为真(非0),则执行循环体的内容,然后执行第3步。若为假(0),则结束循环,执行for语句下面一条语句。3.若表达式为真,执行指定的语句后,求解表达式3。4.返回第2步执行。,此处无;,for语句一般应用形式:,for(循环变量赋初值;循环条件;循环变量增值)循环体语句,说明:for语句中表达式1、表达式2、

6、表达式3类型任意,都可省略,但分号;不可省无限循环:for(;)for语句可以转换成while结构,表达式1;while(表达式2)循环体语句;表达式3;,此处无;,例:#include main()int i=0;for(i=0;i10;i+)putchar(a+i);,运行结果:abcdefghij,例:#include main()int i=0;for(;i10;i+)putchar(a+i);,例:#include main()int i=0;for(;i10;)putchar(a+(i+);,例:#include main()int i=0;for(;i10;putchar(a+i

7、),i+);,省略表达式 1,省略表达式1、3,省略循环体,/*c5_7.c*/main()int i,j,k;for(i=0,j=100;i=j;i+,j-)k=i+j;printf(%d+%d=%dn,i,j,k);,/*c5_8.c*/#includemain()char c;for(;(c=getchar()!=n;)printf(%c,c);,/*c5_9.c*/#include main()int i,c;for(i=0;(c=getchar()!=n;i+=3)printf(%c,i+c);,表达式 1、3为逗号表达式,结论:for语句的功能强大。,三种循环可互相嵌套,层数不限外

8、层循环可包含两个以上内循环,但不能相互交叉嵌套循环的执行流程,(1)while()while().,(2)do do while();.while();,(3)while()do while();.,(4)for(;)do while();while().,嵌套循环的跳转 禁止:从外层跳入内层跳入同层的另一循环向上跳转,6.6 循环的嵌套,例 循环嵌套,输出九九表,/*c5_10.c*/#include main()int i,j;for(i=1;i10;i+)printf(%4d,i);printf(n-n);for(i=1;i10;i+)for(j=1;j=i;j+)printf(j=i)

9、?%4dn:%4d,i*j);,for(i=1;i10;i+)for(j=1;j=i;j+)printf(j=i)?%4dn:%4d,i*j);,6.7 几种循环的比较,三种循环均可处理同一问题;for和while语句为先判断后执行,do-while语句则先执行后判断;do-while和while 语句多用于循环次数不定的情况,循环次数确定的用for语句更方便;do-while语句更适合第一次肯定执行的情况;do-while和while语句只有一个表达式,用于控制循环是否进行。for语句有三个表达式,不仅可以控制循环是否进行,而且能为循环变量赋初值及不断修改其值。故for语句功能更强,更灵活。

10、,break语句一般形式:break;功能:在循环语句和switch语句中,终止并跳出循环体或开关体说明:break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中,6.8 break语句和continue语句,例 break举例:输出圆面积,面积大于100时停止,#include#define PI 3.14159main()int r;float area;for(r=1;r100)break;printf(r=%d,area=%.2fn,r,area);,例 break举例:小写字母转换成大写字母,直至输入非小写字母字符。,/*ch6-5-2

11、.c*/#include main()char c;while(1)c=getchar();if(c=a,continue语句一般形式:continue;功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断说明:仅用于循环语句中continue 语句仅结束本次循环,但break语句则是结束整个循环过程。,例 求输入的十个整数中正整数的个数及其和与平均值,#include main()int i,num=0,a;float sum=0;for(i=0;i10;i+)scanf(%d,分子:1,-1,1,-1分母:1,3,5,7,6.9 程序举例,/*c5_11.c*/#

12、include#include main()int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)=1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(pi=%10.6fn,pi);,例6.6 用 公式求的近似值,直到最后一项的绝对值小于10-6为止,例6.7 求Fibonacci数列:1,1,2,3,5,8,的前40个数。F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n3),/*c5_12.c*/#include main()long int f1,f2;int i;f1=1;f2=1;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;,例6.8 判断m是否素数,/*c5_13.c*/#include#include main()int m,i,k;scanf(%d,例6.9 求100200间的全部素数,例6-10 译密码,例如:Hello,world!译成密码:Lipps,asvph!,/*c5_14.c*/#include main()char c;while(c=getchar()!=n)if(c=a,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号