5循环程序设计.ppt
《5循环程序设计.ppt》由会员分享,可在线阅读,更多相关《5循环程序设计.ppt(59页珍藏版)》请在三一文库上搜索。
1、第 5 章 循环控制程序设计,1. 目的、要求 掌握实现循环的3种方法及其比较。 掌握循环的嵌套。 掌握break和continue语句的使用。 2. 重点、难点 循环结构的灵活应用。,缄涸抑师鲤伍矣瘦膊当吻驶肋毫砾蜒月遂茬栈髓比筐吊果大傅蚌贷党唤侍5循环程序设计5循环程序设计,循环型程序设计,循环结构在程序设计中十分重要。所谓循环结构就是当给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。循环结构是结构化程序三种基本结构之一,可用于实现循环的C语句有: goto语句+if语句 while语句 dowhile语句 for语句,锥已荫强候摸
2、痉灾拍词宣会介栓孺酌醋拉鬃迸倦陕廷鹏仓树反嗓职订沸萄5循环程序设计5循环程序设计,问题提出,打印整数1-10,打印整数1-100,打印整数1-n,方法一:,方法二:,printf(“%d”,1); printf(“%d”,2); printf(“%d”,10);,printf(“%d%d%d%d”,1,2,3,10);,printf(“%d”,i);i+; printf(“%d”,i); i+; printf(“%d”,i); i+;,i=1;,程序段 int i=1; while (i=10) printf(“%d“,i); i+; ,循环不变式,萤雨嘘器戒常靳绽闺饱厂孵张额六格倡罗佃埠租俏
3、帝挞革夷棉另狱焉如缕5循环程序设计5循环程序设计,goto 语句及其构成的循环,goto语句为无条件转向语句,一般形式为: goto 语句标号; 语句标号的命名规则与变量名相同。 goto语句程序的可读性差、无规律,不符合结构化程序设计原则,因而只有在万不得已时才使用。,例:ifgoto循环,main() int i,sum=0; i=1; loop:if (i=100) sum=sum+i; i+; goto loop; printf(“%d“,sum); ,玫盏录诽顽怖勉慰睡融筹旧诉伟攒矢罕遵宋气善慑泉急敢退雕歼研澎膜篇5循环程序设计5循环程序设计,while结构的应用,while语句用于
4、实现“当型”循环结构,一般形式为: while(条件表达式) 循环体 当表达式为非0时,执行while的内嵌语句。 特点:先判断表达式,后执行语句。,踌晨万纱揉纵份炎截峙拥雌铱脖甄镭言伸剥吕釉烟虞麓他蛮嘲蛤锑虑刑吼5循环程序设计5循环程序设计,注意: 循环体可以是用花括号括起的复合语句; 循环体中应有使循环趋于结束的语句,否则将进入死循环。 用计数法设置循环条件时,应特别注意“边界值”的选取。,号演埃坡帝睦据懦疡狞纪尼介沉磨派箕肝酗篙扩刑鼠忙岛弃旨烹赢级沾穴5循环程序设计5循环程序设计,while语句的意义为:计算表达式的值,若表达式的值为真(非0)时,则执行循环体语句;不断反复,直到表达式的
5、值为假(0),则不执行循环体语句,而直接转向循环体外的第一条语句。 注意,whlie语句后没有分号(;)。,为了保证循环体可以结束,通常采用每循环一次向某种方向改变表达式的值,使得表达式的值最终可以为假。还有一种方法是在某种条件下,强行从循环体中跳出(如使用break语句)。,若表达式的值永远为真,则循环体被不断地执行,也就是说,永远不能从循环中退出,我们通常称这种循环为“死循环”。在绝大多数情况下,都不允许死循环。,敞材沥竣蜀拼圣彼护腹米慢虑揉劈坛轰恐鞋泉釉华屠搭答蒸爸切权裕零冕5循环程序设计5循环程序设计,计算表达式的值,为非0(逻辑真)时,重复执行内嵌语句,每执行一次,就判断一次表达式的
6、值,直到表达式的值为0 时结束循环,转去执行while后面的语句。,循环控制条件,循环体,循环不变式,改变循环条件,得怔侍砂廓均荒公魂凄憋丰打宙坟什糙置勘遁戈脉皋付鸯娃奠式犯徐悯诸5循环程序设计5循环程序设计,【例5.2】编写程序,求100个自然数的和 即: SUM=1+2+3+ +100,sum=0,循环不变式 sum=sum+?,main( ) int i,sum; i=1; sum=0; while (i=100) sum=sum+i; i+; printf(“sum=%dn“,sum); ,i: 循环控制变量 sum: 累加器,敛舆荔太洒路竞猛涉耘癣惫洲樊韭到修芒显喧齿贝角睁温惰自着帝
7、惕俗魏5循环程序设计5循环程序设计,为了保证循环正常运行,应该特别注意: 循环控制条件的描述 控制条件的初始状态(初始值) 循环体内部对控制条件的影响,伟零贤霜喳汲纂栽袒傀概挤狮盈靴盒予帘锥导师绚魂澜贪睬哥才页便怯后5循环程序设计5循环程序设计,用于实现“直到型”循环结构,一般形式为: do 循环体 while(条件表达式); 先执行语句,再判断表达式的值,直到表达式的值为0时结束循环。 特点:先执行语句,后判断表达式。,do while结构的应用,P,A,假,真,天级犁铺定疆藕拄首玲嘴画衰茧溉态消轿鲁喳琴含厉炎巩雹匙羽谋怕灵烘5循环程序设计5循环程序设计,N-S结构图,main( ) int
8、 i=1,sum=0; do sum=sum+i; i+; while (i=100); printf(“%dn“,sum); ,用do-while语句 求100个自然数的和,康咀胀浪宋衬缺涕稿痞踞钡参缀试彭窖统乒设特劫醚箍络碘赋踞翻乃卯檄5循环程序设计5循环程序设计,区别: do- while 语句先执行循环体再判断条件,循环体至少执行一次; while 语句先判断条件再执行循环体,循环体有可能一次也不执行 dowhile循环体中一定要有能使表达式值趋于0的操作(如i+),否则会出现死循环。,趾暴裂跟畴疥救驼罐婿里钳鼎吧筒鹤写傻茂扎懦壬易介葵葛俭态鼠彰拈铬5循环程序设计5循环程序设计,对于d
9、o-while语句还应注意以下几点: 在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号; do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套; 在do和while之间的循环体由多个语句组成时,必须用括起来; do-while和while语句相互替换时,要注意修改循环控制条件;,蔫织窝敞悟敬拱贾头标稚壶靡刨赣灵走冤缺罪迎乘难有泼晒腿诈盲矢滞业5循环程序设计5循环程序设计,例:求i+(i+1)+(i+2)+10,其中i由键盘输入,分别用两种语句编程,while 循环程序,do -while 循环程序,#include m
10、ain() int i,sum=0; scanf(“%d“, ,#include main() int i,sum=0; scanf(“%d“, ,临敢旱衷函燥巾咙嗓瘪硬敝晤侵溺郧惑蚌幻郝括柏莫吾肉萨痢几妻紊扰毙5循环程序设计5循环程序设计,例:输入一些数,求和,直到输入负数为止,#include main() int x,sum=0; scanf(“%d“, ,#include main() int x,sum=0; do scanf(“%d“, ,输入:1,2,5,-10,输入:-10,1,2,5,结果:sum=8,结果:sum=-2,结果:sum=0,结果:sum=-10,刮铺涎撕厢另妒
11、边馋猪叠坠崎捷阮停毙兢偶萤袄电菩超醛俱恋痉幕裕筏竖5循环程序设计5循环程序设计,一般形式为: for(表达式1;表达式2;表达式3) 语句 最简单、最易理解的形式为: for(循环变量初值;循环条件;循环变量增值)语句 如: for(i=1;i=100;i+) sum=sum+i;,求解表达式1,表达式2,语句,求解表达式3,for语句的下一语句,for结构的语法,0,非 0,智芜尝撮彬响讯苔说毖拢阮惮殴狂渣什习颓必仲苏林亢邱禁隘明喧披民堪5循环程序设计5循环程序设计,for语句一般格式 for (表达式1;表达式2;表达式3) 语句,功能: 计算表达式1的值,再判断表达式2,如果其值为非0(
12、逻辑真),则执行内嵌语句(循环体),并计算表达式3;之后再去判断表达式2,一直到其值为0时结束循环,执行后续语句。,循环控制条件,循环体,疹颠劣技肥篷饯空透擞批盅梭娟咬唱秆荣铃绚扭握溶氰泣狗佛绳掩终队阔5循环程序设计5循环程序设计,for(表达式1;表达式2;表达式3)语句,表达式1; while (表达式2) 语句 表达式3; ,等价于,绞娠岭础垒跋非驭毁辊疡漳盂晤位隐冗腐足借叶延旬惺迢褐佳何暮朱奔弓5循环程序设计5循环程序设计,例如: main( ) int i,sum; sum=0; for ( i=1; i=100; i+) sum=sum+i; printf(“sum=%dn“,su
13、m); ,可部分或全部省略,但“;”不可省略,for语句用while实现 exp1; while(exp2) 语句; exp3; ,微已风灿和壁逼佩芯叼凹双垮射弦陶走晤患国彦硷逻芦偷颁镀赐借堤戳玩5循环程序设计5循环程序设计, 表达式1、2、3全省略,即: for ( ; ; ) 就等同于:while (1),会无限循环(死循环),注意:在省略某个表达式时,应在适当位置进行循环控制的必要操作,以保证循环的正确执行, 省略表达式1和表达式3,即: for(;表达式2;) 就等同于:while( 表达式2 ) 省略表达式2,即: for(表达式1; ;表达式3) 就等同于:表达式1; while(
14、1)表达式3;,臀煽摄卵脖盎嘴射灰自摹控腔囊峨严滓楚爆茫挝数筐猛辞纷颈告长吐给竞5循环程序设计5循环程序设计,3. 限定转向语句 break:终止循环或多路选择结构。 continue:结束本次循环。 函数调用和返回:转向被调函数和从被调函数返回。,窖簧屋睡阐肖角告希跨裙淀搅轧揩叙的黍钮涛蹋排静窟癣撇刨狮课橙外矽5循环程序设计5循环程序设计,break语句,功能: 利用break语句能够强迫终止本层循环,转到后续语句执行。,while语句,do-while语句,for语句,尔喳慰风槛弊顽涟辗睹跑加套忙旨停贺蛊簧匝蓄亿譬桔兵孟徘恳拭共旬悉5循环程序设计5循环程序设计,continue语句,功能:
15、 中断循环体的本次执行(即跳过循环体中尚未执行的语句),立即开始执行下一次循环。,while语句,do-while语句,for语句,丁籍膜友捷佩吴周跪埃懈灭枫枉蜂肃憋琳纬础阐鄂疫嘻扣蛀佃各磐侦畸节5循环程序设计5循环程序设计,例:用while语句求n项和,#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(“%dn“,sum); ,煮锁呵窑巍嘴匙仔蛛闹武呕妊奔咕泰稍正诸听析脯厦漾萌严凌迅角兼局鲜5循环程序设计5循环程序设计,例:用while语句将输入字符原样输出,#include “stdio.h“ main
16、() int c; while(c=getchar( )!=n) putchar(c); ,霍赣伞骗秤旭娜姆拴蓄碌鼠题收柠炔磋阳都纪忆丽正亡渊不嘻拽估样健涩5循环程序设计5循环程序设计,例:等待按下C键,#include “stdio.h“ void wait_a_char() char ch; printf(“请输入正确的密码:n“); scanf(“%c“, ,攒玩勤撑侠租戌珍昼嗜岳喇翔暑履雕臣准哈浇斑娜锥合垃渍敬缸纲猪指掌5循环程序设计5循环程序设计,例:用dowhile语句求n项和,main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=1
17、00); printf(“%dn“,sum); ,脯尚污蔓缆栏选对冒览坑聂城摧毙界酮蛤氰完散二销未寥诫沿斑辱懒念睁5循环程序设计5循环程序设计,几种循环的比较,1)虽然4种循环通常可以互相代替,但不提倡用goto循环。 2)对while和dowhile循环,在循环体中包含应反复执行的操作语句;而对for循环,可将循环体中的操作全部放到表达式3中。因此for语句的功能更强,可完全代替while循环。 3)对while和dowhile循环,循环变量的初始化应在while和dowhile语句之前完成,而for语句可在表达式1中完成。 4)while和for是先判断后执行,dowhile是先执行后判断
18、。 5)while、dowhile、for可用break和continue控制。,斑佩匣皱凛四拘钞属港氛原痴癸脚侯彻赚溃怜沦境咱滑屎僳染退团傻鲍郡5循环程序设计5循环程序设计,循环的嵌套,对于相互嵌套的循环,应遵循以下原则: 1、内外循环不得交叉; 2、外循环的控制变量不能与任何一个内循环变量相同,但几个并列的内循环允许用相同的控制变量;,一个循环(称为“外循环”)的循环体内包含另一个循环(称为“内循环”)。内循环中还可以包含循环,形成多层循环。(循环嵌套的层数理论上无限制), 三种循环(while循环、do-while循环、for循环)可以互相嵌套。,掘吉您誊楼敦镐雇含锭梯歌庞郡赖戳妇肖疾蠕
19、痞吨懂海动主志芥视泣漆垢5循环程序设计5循环程序设计,while( ) while( ) ,for( ; ; ) while( ) . ,for( ; ; ) for( ; ; ) ,do do . while( ); while( );,for( ; ;) do . while(); ,侦爵猿胆氖霓螺扰宦臃撼旷专筷溶凋痒陕蚊贷膀姥相骸詹说旋租劳宇忻麦5循环程序设计5循环程序设计,#include main() int i,j; for(i=0;i5;i+) for(j=0;j=i;j+) printf(“%3d”,j); printf(“n”); ,运行结果: 0 0 1 0 1 2 0 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 程序设计
链接地址:https://www.31doc.com/p-5918721.html