《第7讲循环嵌套break与continue循环小结.ppt》由会员分享,可在线阅读,更多相关《第7讲循环嵌套break与continue循环小结.ppt(18页珍藏版)》请在三一办公上搜索。
1、第7讲,酚进篙搪绸蔼狠瘸师扰吠毙众撇遗赘搓邢丸缎皮闷戌击辐晴值裤酿渍秤勉第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,第4章 循环程序设计,4.1 循环概述,4.2 while语句,4.3 for语句,4.4 dowhile语句,4.5 循环的嵌套,4.6 break与continue语句,溢滋蝎迈营挟踪舜架谤懈货揩尊献坤脐脓雾厂箩因婪舔堕惶脑于陋炽嫡纯第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,循环的嵌套三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但
2、不能相互交叉嵌套循环的执行流程,(1)while()while().,(2)do do while();.while();,(3)while()do while();.,嵌套循环的跳转禁止:从外层跳入内层跳入同层的另一循环向上跳转,碎谴篡滦霹卢咳茂楷汀机摹峪绒膛睁朴奋尚斡奸兆查袱腮肌鞋版贺奖半袭第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,4.5 辅助控制语句break语句功能:在循环语句和switch语句中,终止并跳出循环体或开关体说明:break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何
3、其它语句之中,罢岂柜孽敬艘谤斋讨标厨呈氖喀坟乓祖蒲嘎乡寥授料叹实率汀钵卢届滤惕第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,水欧救粤渭巨煌阿苔利旦宵滔报剥稽缩占滞址棘仕是晓道城茶韶局膨绢介第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,澳峙陪哺窗散览冀苔粥泽赠毫张诈蚁萧粱缕寥活霍篡叮憾毒肄噎垄床线迹第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,例 break举例:输出圆面积,面积大于100时停止,#defi
4、ne PI 3.14159fvoid main()int r;float area;for(r=1;r100)break;printf(r=%d,area=%.2fn,r,area);,集挂婴呀扔卡牵演孵点栽痊苯猩还哨暮躯寇档狂炭宏剖吠绑刨寸弄觅骨傲第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,例 break举例:小写字母转换成大写字母,直至输入非字母字符,#include void main()int i,j;char c;while(1)c=getchar();if(c=a,噪平硫涸西姬鸭腋兔轨鸿谗讹粱狄作崖镣父翱柑蹿护苑垢荫
5、兜钞剔蒂咙婪第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,continue语句功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中,樟刮移蔽诀请侍森猿濒谁馅夯握雌痈柴锁腥攫该霉山霉剥朔昭旗期棺晌军第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,例 求输入的十个整数中正数的个数及其平均值,#include void main()int i,num=0,a;float sum=0;for(i=0;i10;i+)scanf(%d,崩挽
6、镶夹殉司捎助邢努梯加惑砍逢镐孜妇凄每时梨懈盯珊席崭浩俺孽辑讥第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,循环小结,作籍歼楷暗劣钢踏湍器哎乡癸幻敦霸颐务铡她愚靛襄妒猛而瞧冰氛晕荆秩第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,例:某个班有10个学生。已知他们参加某次考试的成绩(0到100之间的整数),求全班学生在这次考试中的总成绩。,#include main()int counter,score,total=0;printf(Enter score:);for(co
7、unter=1;counter=10;counter+)scanf(%d,铬蜀旭充酥甭应盅署逾括痔柬誓创锐隋聂簿熔舅骸锯杯扰岩蹈撰沾泞蜂忍第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,例:某个班有若干个学生。已知他们参加某次考试的成绩(0到100之间的整数),求全班学生在这次考试中的总成绩。,#include void main()int counter=1,score,total=0;printf(Enter score,-1 to end:);scanf(%d,直拾脓铝垢近宣窜斡箱卡淌推逐腺赁央辈斌怯胀减裕积歹罐蒸臭麓镰蹿欺第
8、7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,前面讨论了两种循环:1)计数器控制的循环 2)标志控制的循环 因为我们事先能够准确地知道计数器的循环会执行多少次,所以把计数器控制的循环有时称为“定数循环”;因为我们事先不知道标志控制的循环会执行多少次,所以把标记控制的循环有时称为“不定数循环”。在计数器控制的循环中,控制变量用来计算循环的次数。控制变量的值在每次执行完一组循环指令后递增(或递减)。当控制变量的值表明达到了预定的循环次数时,循环终止并继续执行循环结构后的语句。在如下情况下可用标记值控制循环过程:1)事先不知道准确的循环次
9、数 2)循环体中包含每次循环都要获取数据的语句 标记值表示获取数据的结束。标记值是在所有合法数据项都提供给程序后键入的值。标记值必须不同于正常的数据项。,朽丹增酋辗霄享匿袋腕娟贴摊填撂量脏撤庸渤剂蹄幢摧虽杯逾氦植借疯挛第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,例:协助破案。假设已经查清,有A、B、C、D、E五个嫌疑人可能参与制造了一起抢劫银行案,但是不知道其中哪几个人是真正的案犯。不过,有确凿证据表明:如果A参与了作案,则B和C一定会参与。B和C两人中只有一人参与了作案。C和D要么都参与了作案,要么都没有参与。D和E两人中至少
10、有一人参与作案。如果E作案,则A和D一定参与作案。,刑砖突佯杂啤病延波靛良恋昆衡战坝佣虞丁云硬估锤蛀倦太儒毖瓣酸碍再第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,main()int a,b,c,d,e;int count=0;for(a=0;a=1);count+=(e=0|(e=1,牛答闯茎剁逊搏潮辰疆若园纺扰降胯慧烯惮爷赁阵屿脉诵茹祥拜殆叔汽铁第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,循环语句的效率建议一:在多重嵌套循环中,如果有可能,应当将最长的循环放在最内
11、层,最短的循环放在最外层,这样可以减少CPU跨切循环层的次数,从而优化程序的性能。,for(row=0;row100;row+)for(col=0;col5;col+)sum+=arowcol;,for(col=0;col5;col+)for(row=0;col100;col+)sum+=arowcol;,鲸质肌丙虏贴榨荒糟填揉孜券撞卢峭政捻癣柔萝贺拨甩驶旭乎结乘邪帮睦第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,循环语句的效率建议二:如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。,for(i=0;iN;i+)if(conditon)DoSomething();elseDoSomething();,if(condition)for(i=0;iN;i+)DoSomething();else for(i=0;iN;i+)DoSomething();,榷苞盘碰储近琅林馒疟煎袱暑膛甘塑调纂辨拇熙头坡衡案台祭绑包笺彤锑第7讲循环嵌套、break与continue、循环小结第7讲循环嵌套、break与continue、循环小结,