收藏 分享(赏)

c语言循环结构.ppt

上传人:wspkg9802 文档编号:4224567 上传时间:2018-12-16 格式:PPT 页数:29 大小:339KB
下载 相关 举报
c语言循环结构.ppt_第1页
第1页 / 共29页
c语言循环结构.ppt_第2页
第2页 / 共29页
c语言循环结构.ppt_第3页
第3页 / 共29页
c语言循环结构.ppt_第4页
第4页 / 共29页
c语言循环结构.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、1,第六章 循环型程序设计 6.1概述 C语言可实现循环的语句: 用goto 和 if 构成循环不要求 while 语句 do while 语句 for 语句 6.2goto语句及用goto构成循环,不提倡 一般格式: goto 语句标号;. 标号:语句;,2,6.3 while语句 记忆:先判条件,执行循环体一次,再判条件。不满足退出。关键:条件为非0,while(表达式) 循环体语句;,执行流程:,3,特点:先判断表达式,后执行循环体 说明: 循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while循环 条件表达式不成立(为零) 循环体内遇break,return,got

2、o 无限循环: while(1)循环体; 求1+2+3+100=?,4,P114例6.2 用while循环求,/*ch6_2.c*/ #include main() int i,sum=0;i=1;while(i=100) sum=sum+i;i+;printf(“%d“,sum); ,5,例 显示110的平方,#include main() int i=1;while(i=10) printf(“%d*%d=%dn“,i,i,i*i);i+; ,运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=10

3、0,6,6.4 dowhile语句 一般形式:,do 循环体语句;while(表达式);,执行流程:,7,特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 dowhile可转化成while结构,8,P115例6.3 用dowhile循环求,/*ch6_3.c*/ #include main() int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(“%d“,sum); ,9,P117例6.4 while和dowhile比较,#include main() int i,sum=0;i=1;do sum=sum+i;i+;while(i

4、=10);printf(“%d“,sum); ,main() int i,sum=0;i=1;while(i=10) sum=sum+i;i+;printf(“%d“,sum); ,运行: 输入1 输入1 sum=55 sum=55 输入11 输入11 sum=0 sum=11,10,6.5 for语句 一般形式:,for(expr1 ; expr2 ; expr3)循环体语句;,执行流程:,11,for语句一般应用形式:,for(循环变量赋初值;循环条件;循环变量增值) 循环体语句; ,说明: for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省 无限循环:

5、 for(;) for语句可以转换成while结构,expr1; while(expr2) 循环体语句;expr3; ,12,例:#includemain( ) int i=0;for(i=0;i10;i+)putchar(a+i);,运行结果:abcdefghij,例:#includemain( ) int i=0;for(;i10;i+)putchar(a+i);,13,main() int i,j,k;for(i=0,j=100;i=j;i+,j-) k=i+j;printf(“%d+%d=%dn“,i,j,k); ,#include main() char c;for(;(c=getc

6、har()!=n;)printf(“%c “,c); ,#include main() int i,c;for(i=0;(c=getchar()!=n;i+=3)printf(“%c “,i+c); ,14,6.6 循环的嵌套 三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,但不能相互交叉 嵌套循环的执行流程 嵌套循环的跳转 禁止: 从外层跳入内层 跳入同层的另一循环 向上跳转 如: for(i=1;i10;i+)for(j=1;j10;j+)第一句;第二句;,15,例 循环嵌套,输出九九表,/*ch6_5.c*/ #include main() int i,j;for(i=1;i

7、10;i+)printf(“%4d“,i);printf(“n-n“);for(i=1;i10;i+)for(j=1;j10;j+)printf(j=9)?“%4dn“:“%4d“,i*j); ,16,for(i=1;i=10;i+)for(j=1;j=10;j+)s=s+i+j; printf(“%dn“,s); 分析技术: 先固定外层i,再分析内层j。 把二重循环转为单循环j 而后再执行外循环i。,17,6.7 几种循环的比较 可代替使用;while及dowhile的循环体内要有i+, for()则不用,但( )内要有i+ 。 6.8 break和continue break语句 功能:在

8、循环语句和switch语句中,终止并跳出循环体或开关体 说明: break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的任何其它语句之中 continue语句 功能:跳过后面语句,直接拉回到循环开始处,进行下次循环的操作。短路,18,19,20,例 break举例:输出圆面积,面积大于100时停止,#define PI 3.14159 main() int r;float area;for(r=1;r100)break;printf(“r=%d,area=%.2fn“,r,area); 思考:r是整型,PI是浮点常量, area=PI*r*r能放一起运算吗?其

9、值是什么类型的?为什么?,21,例 break举例:小写字母转换成大写字母,直至输入非字母字符,main() int i,j;char c;while(1)c=getchar();if(c=a 思考:本循环的执行条件是什么?退出条件?c在接收一个小写字母后,为何能进行c=c-32运算,其原理及结果是什么?,22,continue语句 功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断 仅用于循环语句中,23,例 求输入的十个整数中正数的个数及其平均值 main() int i,num=0,a;float sum=0;for(i=0;i10;i+) scanf(“%d

10、“, sum、num、a之间运算的原理是什么?,24,程序举例,#include #include main() int s=1; float n=1.0,pi=0.0,t=1.0; while(fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n;,pi=pi*4; printf(“pi=%10.6fn“,pi); 结果:3.141594 改long及1e-8及输出%20.17f 结果:3.1415926335902506,25,P125例6.7 求Fibonacci数列:1,1,2,3,5,8,的前10个数,main() int f1,f2,i; f1=1;f2

11、=1; clrscr(); for(i=1;i=5;i+) printf(“ %d %d,“,f1,f2); f1=f1+f2; f2=f2+f1; sleep(3); ,26,P127例6.9求100以内素数 main() int m,k,i,j=0;clrscr(); for(m=1;m=k) printf(“%d “,m);j+; printf(“n%d“,j); 1 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97,#include #include main() int m,k,i,n=0,j=0

12、; clrscr(); for(m=2;m=k+1) printf(“%d “,m);j=j+1; printf(“%dn“,j); 思考:为何要包含math.h?,27,P126记忆:求素数的另一方法,重要! #include “stdio.h“ void main() int m,k,i,j=0; for(m=101;m=200;m+) if (isP(m) printf(“%d “,m);j+; printf(“n%d“,j); int isP(int m) int i; for(i=2;im;i+) if (m%i=0) return 0; return 1; ,28,P128例6.10译密码China! main() char c;clrscr(); while(c=getchar()!=n) if(c=a 输入China! 输出Glmre!,ABCDEFGHIJKLMNOPQRSTUVWXYZ,29,记忆要点,1. while循环(由if语句推出) while(条件) -; 2. dowhile循环(由while推出) do -; while(条件); 3. for循环 for(i=1;i=100;i+) -; 前条件、后条件、中条件位置。 Break、continue退出 典型:求1+2+100、阶乘,

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

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报