第六章循环体程序设计.ppt
《第六章循环体程序设计.ppt》由会员分享,可在线阅读,更多相关《第六章循环体程序设计.ppt(51页珍藏版)》请在三一办公上搜索。
1、第六章 循环结构程序设计,氯哺尽室抵萤士熄领匿金瑟庆讽翔粕鸟丹囤岂猪拦蛹檬湍拘过内消试酗湍第六章循环体程序设计第六章循环体程序设计,第 2 页,6 循环语句,提出问题,?,提问:打印10行“*”,怎么编程?回答:写10个printf(“*”);语句。提问:打印500行,怎么编程?回答:这个,嗯?不会让我写500个.,注意:让我们换一个角度来看待这些问题,以上问题实质是:将printf函数重复执行N遍。,printf(“*”);,笆旗风灶馆我撩够界城骏赣揭钩铡杯玻股袜糊略鹤哈飞湍甫卫做梗罗匿佣第六章循环体程序设计第六章循环体程序设计,第 3 页,6 循环语句,循环 反复执行同一段程序,直到满足一
2、定的条件后才停止执行该段程序。C语言中控制循环的语句:while do-while for,芹虑措戚莫逐羡剂卷轮淆炬被封纲洛胜鬃砰鉴凶妻慨汾瞳汇壕邻恒撅闰刘第六章循环体程序设计第六章循环体程序设计,第 4 页,6-1 while语句,while语句格式while(表达式)语句;说明:语句部分可以是简单语句,也可以是复合语句。while语句的执行流程,啥剁赦胸挠痛冷觉醋肢昏妹敲绢捞禁缔隘稚驻笺镐贫芬咎停涌润晚豆烬筏第六章循环体程序设计第六章循环体程序设计,第 5 页,6-1 while语句-实例,例:从键盘输入10个整数,求这10个整数的和。#include main()int count,nu
3、m,total;/*count:计数器,num:输入的整数*/count=0;total=0;/*total:存放累加和*/while(count10)/*循环控制条件*/count+;/*循环体*/printf(Enter the No.%d=,count);scanf(%d,戈茶檀锗萨胸畦下奉鸣徒差箔腊轰炭虐年渡旬纽利蘑浸绊承姆减谭讨祥吏第六章循环体程序设计第六章循环体程序设计,第 6 页,6-1 while语句-实例,例:分析程序的运行结果#include main()int n=0;while(n3)printf(”n is%dn”,n);n+;printf(”Thats all th
4、is program does.n”);结果:程序将不停的打印“n is 0”,直至终止程序无法正常终止的程序,称为“死循环”。结论:在while语句循环体中,一定要有能够对循环控制条件产生影响的语句。避免出现“死循环”现象。,雇才耿锋翱类营激腥堤纱屑亿缠凸捐视庭著威攘谋熊摆者文鳃海疏跑止版第六章循环体程序设计第六章循环体程序设计,第 7 页,6-1 while语句-实例,例1:分析下列程序段 index=1;while(index 5)printf(”Good morning!n”);分析:程序段将无限制打印字符串。因为循环中没有任何语句可以改变循环控制变量index的初值1例2:分析下列程
5、序段 index=1;while(-index 5)printf(”Good morning!n”);分析:仍有问题,程序改变了index的值,但方向错了。在index达到系统能够处理的最大负数时,将会产生下溢而终止程序。结论:循环体中必须有能够使循环正常停止的条件。,洲傲竟丑睡鸦梯露撬爪狞点汇砍阔泵借赴冗灌求掏袋饥患毙葫埂木策音轮第六章循环体程序设计第六章循环体程序设计,第 8 页,6-1 while语句-实例,【例6.1】求,main()int i,sum0;i=1;while(i100)sum=sum+i;i=i+1;printf(“d”,sum);,赐争两渗妇密哼蔷棵荧吃撑糯杉茸嗅拉据
6、澳驱诗机仑婉顽盒桌弥菊婪世架第六章循环体程序设计第六章循环体程序设计,第 9 页,6-1 while语句-实例,【例6.2】求前n个数的平方的和:,根据上例写出程序如下:main()int i=1,sum=0,n;scanf(“%d”,&n);while(i=n)sum=sum+i*i;i+;printf(“i=%d,n=%d,sum=%dn”,i,n,sum);,碾腑践虎霄咙寒争玛岂技甩呻惶卓祭限吝矩烹鹿台匝级商误咸嫉嘲眯暑彼第六章循环体程序设计第六章循环体程序设计,第 10 页,6-1 while语句-实例,该例也可以写成如下:,main()int i=1,sum0,n;scanf(“%d
7、”,&n);while(n)sum=sum+n*n;n-;printf(“i=%d,n=%d,sum=%dn”,i,n,sum);,组豹锭策嗓皋拼沪掇砷凤卧惕虎哗毙郴属古谨浮峰犁锑衍策骂税参壳韦驹第六章循环体程序设计第六章循环体程序设计,第 11 页,6-1 while语句-实例,【例6.3】将输入的字符原样输出,以“#”号结束。,#include main()char c;c=getchar();while(c!=#)putchar(c);c=getchar();,般腔排验煎挪桑迭壁愤懊补切戌傍挡奢题渡凳薪戒貉膜角警毅能士耍屁闻第六章循环体程序设计第六章循环体程序设计,第 12 页,6-1
8、while语句-实例,上述程序也可以写为:,#include“stdio.h”main()char c;while(c=getchar()!=#)putchar(c);,锹毗忌汹洛忆袄拽祖蕾讫进穿别瞳渝披钓忠亡辱爽异染节彪睡沿壁业窥衣第六章循环体程序设计第六章循环体程序设计,第 13 页,6-1 while语句-实例,【例6.4】统计从键盘输入的以n结束的字符中英文字母的个数。,#include main()int n=0;char c;while(c=getchar()!=n)if(c=a,Ab2!*AB4,椰阀抚此毕阻淮簿骆沫博材涤勇室泡永哄稍垂呢筒叮活耪娃伶昏搽者锋涎第六章循环体程序设计
9、第六章循环体程序设计,第 14 页,6-1 while语句-实例,while使用注意 1.while(0).由于循环的条件表达式恒等于0,循环体永远也不会执行。2.while(1).由于循环的条件表达式恒等于1,所以不可能通过循环控制条件来结束循环体的执行,称为“死循环”。3.为了保证循环正常运行,应该特别注意:循环控制条件 控制条件的初始状态(初始值)循环体内部对控制条件的影响,谦焚撕企归骏芹董盲蜒撬瓶蕉拼搐递负藐戒怕芋伞澈晌奥臂孜耶乞禾搪纬第六章循环体程序设计第六章循环体程序设计,第 15 页,6-2 do-while语句,do-while语句格式 do 语句 while(表达式);do-
10、while语句的执行流程,循环控制条件,循环体,致渣樟索雀韧津釜功歇象矾毙暑人查隙胳纯映翌背搭来骑拉遭桐剁丈蓑急第六章循环体程序设计第六章循环体程序设计,第 16 页,6-2 do-while语句,do-while语句特点do-while与while的最大区别:do-while语句先执行循环体然后再判断循环控制条件,而while却是先判断条件之后再执行循环体。使用do-while构成的循环,循环体至少要执行一次;而采用while构成的循环,循环体有可能一次也不会执行。,佛诗扇昨盾果瑶钡程宏冰要沫拭刻宁鸟被毒漂严旨麻汞啼降纫捣自妊乌你第六章循环体程序设计第六章循环体程序设计,第 17 页,6-2
11、 do-while语句-实例,【例6.6】用do-while语句求,main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(“%d”,sum);,捶窿骤查元沼种慑有枢醇傀剃蛔胎糠赘兜礁符手佳勤荷阵晒逐琼宜徊挛柴第六章循环体程序设计第六章循环体程序设计,第 18 页,/*ex4-11-1.c*/#include main()int i,sum=0;scanf(%d,/*ex4-11-2.c*/#include main()int i,sum=0;scanf(%d,1 sum=55,1 sum=55,11 sum=11,11 sum=0,
12、6-2 while和do while比较,蒜柒咳儡尖霸罪阔鸟深喇涵寺倔筑帽锰恤敝毖漫蘸肖腰卑授迅琳寥埃惨世第六章循环体程序设计第六章循环体程序设计,第 19 页,6-2 do-while语句-实例,【例6.8】输入一个整数,计算它的位数.并反向输出.,main()long num;int count=0;printf(“输入一个整数:”);scanf(“%ld”,&num);do printf(“%d”,num%10);num=num/10;count+;while(num);printf(“该整数是%d 位数.”,count);,葛惭惭铲协缴浮驾呐鸯俭椒肮论啤蛮劫颤捉杂村箱寓救疵倪恬翱捻渺鄙
13、宽第六章循环体程序设计第六章循环体程序设计,第 20 页,6-3 for语句,for语句格式for(表达式1;表达式2;表达式3)语句;for语句的执行流程,循环初始条件,循环控制条件,循环体,for语句等价于下列语句:表达式1;while(表达式2)语句;表达式3;,涉丫疵祥梦赦性功权歌靶抒缆竿哩梢词纠辆拒乒敌影舰却役丁樊超澡悼记第六章循环体程序设计第六章循环体程序设计,第 21 页,6-3 for语句-实例,例:求一个数的阶乘。#include main()long int jc=1;int i,n;scanf(“%d”,for语句最常用的形式for(初值;控制条件;增量)语句;,3 3!
14、=6,血敲饿然讨歌刊蟹贝曳梗开憾箍镭枚浙穗屈雁侵幼猩硒监往篓缝涛殆始迎第六章循环体程序设计第六章循环体程序设计,第 22 页,6-3 for语句,for语句的变化形式for语句中的三个表达式中的任意一个都是可以省略的,但是分号不能省略。1.省略表达式2,则:for(表达式1;表达式3)就形成了一个死循环。2.省略表达式1和表达式3,则:for(;表达式2;)就等同于:while(表达式)据此结论:所有用while语句实现的循环都可以用for语句实现。3.表达式1、2、3全省略,则:for(;)就等同于:while(1),滁羞茫师井赊措伙戮版以务膨勃阴苯碎蔑泉禄搬强烈锁泛昧涵河跟第种诽第六章循环
15、体程序设计第六章循环体程序设计,第 23 页,6-3 for语句-实例,【例6.9】输入20个09的数字字符,计算有多少奇数,偶数和零。,#define M 20main()int i,k,n1=0,n2=0,n3=0;char ch;printf(“输入数字字符20个:n”);for(k=1;k=M;k+)scanf(“%c”,&ch);i=ch-0;if(i=0)n3+;/*零*/else if(i%2=0)n1+;/*偶数*/else n2+;/*奇数*/printf(“有%2d 个偶数,%2d 个奇数,%2d 个零”,n1,n2,n3);,戳致继姑益捅质窿樊再泪闭名赊逐际毛辅瓶慑鲍靡廓
16、崎漠理守比计伊阎溃第六章循环体程序设计第六章循环体程序设计,第 24 页,外层循环可包含两个以上内循环,但不能相互交叉,循环的嵌套三种循环可互相嵌套,层数不限,(1)while()while().,(2)do do while();.while();,(3)while()do while();.,6-4 循环的嵌套,是促绽食眉俗驰健豫牟渺固擎卤蝎绵近毕早藐叹啡渡辊孪印沾简盾按酉磕第六章循环体程序设计第六章循环体程序设计,第 25 页,6-4 循环的嵌套,【例6.23】打印九九表。,main()int i,j;for(i=1;i10;i+)for(j=1;j=i;j+)printf(%d*%d=
17、%dt,j,i,i*j);printf(n);,夹驶教伪驴樊丁距矗乖赏摄林侗俭档富啤索痰巢已枫颊礼鸽辅嘛饮谚甲屹第六章循环体程序设计第六章循环体程序设计,第 26 页,6-4 循环的嵌套,【例6.10】写出运行结果。,main()int i,j,k;printf(i j kn);for(i=0;i2;i+)for(j=0;j2;j+)for(k=0;k2;k+)printf(“%d%d%dn,i,j,k);,息公骑嘲棋虏阮划谜炭肝铜时交毯拥侦券翻杰梨脸铜毫襟炭膝毒韩疗捻良第六章循环体程序设计第六章循环体程序设计,第 27 页,6-5 循环语句小结,C语言提供了三种循环语句:for、while、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 循环体 程序设计
链接地址:https://www.31ppt.com/p-5287434.html