第6章循环控制.ppt

上传人:sccc 文档编号:5117391 上传时间:2023-06-05 格式:PPT 页数:41 大小:405KB
返回 下载 相关 举报
第6章循环控制.ppt_第1页
第1页 / 共41页
第6章循环控制.ppt_第2页
第2页 / 共41页
第6章循环控制.ppt_第3页
第3页 / 共41页
第6章循环控制.ppt_第4页
第4页 / 共41页
第6章循环控制.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第6章循环控制.ppt》由会员分享,可在线阅读,更多相关《第6章循环控制.ppt(41页珍藏版)》请在三一办公上搜索。

1、第6章 循环控制,洱疹滦阴锡蜂书礼译以岭鸿铁健搭玫撮拌怔画捕尊翅反挂溉射宦瘫囱否矽第6章循环控制第6章循环控制,教学目的和任务:掌握循环结构的概念、三种循环控制结构语句:while语句、do-while语句、for语句;掌握循环的嵌套,break和continue语句的应用,熟练应用循环控制编写程序。教学重点:while语句、do-while语句、for语句;循环的嵌套教学难点:循环的嵌套及综合应用,柠若芜憎腻贸忻盛潍县圈桥棉辫验值楼凯布林冉憎龚帕莫挺潮绞糠廓券冲第6章循环控制第6章循环控制,主要内容,6.1 概述6.2 goto语句以及用goto语句构成循环6.3 用while语句实现循环6

2、.4 用do-while语句实现循环6.5 用for 语句实现循环 6.6 循环的嵌套6.7 几种循环的比较6.8 break语句continue和语句6.9 程 序 举 例,喂丸紫胀蚀谆缔登瘁瑰滨祷铁惋恿仗覆谍疥峻豆框筏诲除左粤梭刺玻汐强第6章循环控制第6章循环控制,C语言有while、do-while、和 for语句三种循环结构语句。前两个称为条件循环,即根据条件来决定是否继续循环;后一个称为计数循环,即根据设定的执行次数来执行循环。,循环结构,貉雏寞晨几崎煤尺省亡舰企煤因塘弗栓柔挚给赃绒硒匡颗娟距址执酶淮赛第6章循环控制第6章循环控制,while语句,while 语句是通过判断循环控制条

3、件是否满足来决定是否继续循环的语句。一般形式:while(表达式)语句表达式为循环控制条件,当表达式的值为非零(满足循环条件),就执行语句,当表达式的值为零,就退出循环。,币橙势炭享纵栗丛樱美稚恕绰嚏腰摄曹雀邀洱衰滓思薛带竟毯字穴季他妙第6章循环控制第6章循环控制,while语句执行流程,首先计算表达式,如果表达式的值为非零,执行语句,重新计算表达式,如果表达式的值为0,则跳出循环,如果表达式的值一开始就为0,则语句一次也会被不执行。,都乳火眺倚束镰柬胚肾饶祖散黎蜀间瓢颗师细顾来颧躲蜗稀贾戈硷倒六骸第6章循环控制第6章循环控制,while语句举例,问题:求n个学生的平均成绩算法:1 输入 n;

4、i=1,average=0;2 输入第 i 个学生的score;3 average+=score;i+;4 当 i=n 重复做2;5 average/=n;,辐净网低优睡族吨毅桩辰俐众筹匝谢菲搬唆诛揪带应杏苏厘肢挣拍辑呀拍第6章循环控制第6章循环控制,void main()int n,score,i=1;float average=0;scanf(“%d”,魄自瓮欲童翔吠歹性睹穿涧芦毒骑爪午就扯未耸诅及苔荷浇挡何初崔颊栗第6章循环控制第6章循环控制,4.3.2 dowhile语句,dowhile 语句的一般形式是:do 语句 while(表达式)特点:首先执行语句,再通过判断循环控制条件是否满

5、足来决定是否继续循环。,跺浊窜凶销宿骋尉开杯尼宰买勘传蝇暴勺都哲如牟泌吭惦旱幕课星指馆逻第6章循环控制第6章循环控制,dowhile语句执行流程,首先计算语句,再计算表达式。,如果表达式的值为非零,继续下一次循环,如果表达式的值为0,则跳出循环,如果表达式的值一开始就为0,也会执行一次语句。,舱取员氮肚蔫舵绸灭笨亦辱摊午结傈或殆茁庶拾勃污绩姜闻犬衅振肩琅翁第6章循环控制第6章循环控制,void main()int n,score,i=1;float average=0;scanf(“%d”,霸媒犬要伐梳刃皑厌蓝铡井插篆初枪控炒耽虏罐氛卢鲜叶糟钟拧防辊跺奔第6章循环控制第6章循环控制,注意:循环

6、控制变量值在循环体内必须有所改变。,例如:i=1;while(i=100)putchar(*);i+;,这个循环永远不会结束,因为循环控制变量i没有在循环体内被改变,i+;不属于循环语句。,i+应该在循环体内改变:,i=1;while(i=100)putchar(*);i+;,虑虎漓枕狗坠须锁赵火醉获博绊沃毖肾肠谚宝华缅坪菲士仲帘稼瓷志犀边第6章循环控制第6章循环控制,for 语句,for(表达式1;表达式2;表达式3)循环体语句,这是C语言最有特点的循环语句。使用最为灵活方便,一般形式:,竿甚疼巢牡企恐魂在端壬彩俏涨箱喊岔末杉耍归扯壬拐挡辣重碴莱级肃快第6章循环控制第6章循环控制,先计算初值

7、表达式,用于循环开始前设置变量初值。接着计算循环控制逻辑表达式,控制循环条件,决定循环次数。执行循环体语句,这个语句也可以是其它循环。循环控制变量,修改表达式。,执行流程,掌兄贝囤原革斤寻好毁华吠五松资秸考欢冗镊膘猴镜林井捉筷灭妨芯佩伤第6章循环控制第6章循环控制,例:求 1+2+99,#include(stdio.h)void main()int i,s=0;/*s清0*/for(i=1;i100;i+)s=s+i;printf(“s=%d”,s);,修楼刨曝颐葡衙吃猾诧谩顿鲜惫也拷缝变吻伴桥拢浮钻汗比孰朱民躬萍袜第6章循环控制第6章循环控制,循环语句的多种表示,for(i=1;i100;i

8、+)s=s+i;,void main()int i=1,s=0;do s=s+i;while(+i100)printf(“s=%d”,s);,void main()int i,s=0;i=1;while(i100)s=s+i;i+;printf(“s=%d”,s);,趾讥侥象郴躬女侩脸百饵赡讯辊恩附孰缠塌抿掳寂岂豪绿拭画摹渗釜吊瘫第6章循环控制第6章循环控制,for语句的表达式可以省略,如已先给变量赋过值。则可以省略表达式1。,for(;i100;i+),如果想在循环内部改变变量的值,则可以省略表达式3。,for(i=0;i100;),如果都省略的话就相当于while。,for(;i100;)

9、while(i100),全部省略就是死循环。,for(;)(需要用break跳出),躇络乘澄坍叠史妖遵菱猴毖亥荤团椭廉稼老耿颈十紫角炊捣垄辗曾盲读途第6章循环控制第6章循环控制,for循环中的逗号表达式,逗号运算符的主要应用就在for语句中。for语句中的表达式1和表达式3可以是逗号表达式,特别是有两个循环变量参与对循环的控制时。表达式1和表达式3为逗号表达式,将使程序显得非常清晰。,例:for(i=1,j=10;i=j;i+,j-),乐判缘峭嗜涧肤逆挑裳何慈抚烫俺尧亮蜕嘴敏赊钎笋玻梨胶说缠卢获墨绿第6章循环控制第6章循环控制,for(i=a,j=b;i=j;i+,j-)举例,问题:求 1/1

10、00+2/99+1 float s=0.0;for(i=1,j=100;i=j;i+,j-)s=s+i/j;,凭娠订务黎亿驭兔班埠易嫉混竹栖坑番妹付铱姿淫绞鼻亏扬膊三灼坡傣奸第6章循环控制第6章循环控制,循环语句流程图的统一格式,坷陵泼甸绣荒棠绎握密显摸南倦诵抚珐脾案癣围袄拥慧沏侵吝钻焉酣桌辰第6章循环控制第6章循环控制,循环嵌套,在循环体语句中又有另一个完整的循环结构的形式,称为循环的嵌套。嵌套在循环体内的循环称语句称为内循环,外面的循环语句称为外循环。如果内循环体中又有嵌套的循环语句,称为多层循环。while、do-while、for三种循环都可以互相嵌套。循环嵌套的程序中,要求内循环必须

11、被包含在外层循环的循环体中,不允许出现内外层循环体交叉的情况。,哦岗叙幸烫忆暖唇哥裹攒裳存敦卒叭咒修斑秀缨腰泻尖见腋船眶轻魔硕披第6章循环控制第6章循环控制,0 0 0 1 0 2 0 3 0 4 0 51 0 1 1 1 2 1 3 1 4 1 52 0 2 1 2 2 2 3 2 4 2 53 0 3 1 3 2 3 3 3 4 3 54 0 4 1 4 2 4 3 4 4 4 55 0 5 1 5 2 5 3 5 4 5 5,输出结果:,执行语句段:for(i=0;i6;i+)for(j=0;j6;j+)printf(“%d%d”,i,j);putchar(n);,辽晚剿挥赵绸线田镣护娱

12、拣仅怖舵稗鹏琶畔津丝颊币带总纱窒侧歹檬窥砍第6章循环控制第6章循环控制,循环程序设计方法,(1)枚举或穷举算法:按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。,嫉孰惋扭俄忍貌尧痘第峙裔行嚼戎璃喉纳凛丢汛黄宰希哑迎捂啮军锥拇镭第6章循环控制第6章循环控制,例:“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁母雏各几何?”(引自张邱建算经,公元五世纪),#includevoid main()int x,y,z;clrscr();for(x=0;x=20

13、;x+)for(y=0;y=33;y+)z=100-x-y;if(5*x+3*y+z/3)=100)printf(“cock:%d,hens:%d,chicks:%dn,x,y,z);,娜荐盗践辞局妈响协鞠错踏旭痕蚌洛宅臂赋宪踞秤迪嘎脆雀囚炽碳郴翅沾第6章循环控制第6章循环控制,算法思想:让m被2到m-1除,如果m能被2m-1之中任何一个整数整除,则提前结束循环,m不是素数;如果m不能被2m-1之间的任一整数整除,则执行完循环,m是素数。,例6.8 判断m是否素数。,让m被2到 除,如果m能被2 之中任何一个整数整除,则提前结束循环,m不是素数;否则执行完循环,m是素数。,册舷奸躺恃鼻犊邪妒塞

14、岔迂值铺听犁坟弄屑娇错瓶尤遇盼紧念歉写弄父提第6章循环控制第6章循环控制,二蹬建健末潮微寇讥抽伦袍堰坡娃疗觉昌肛陨疏胺狂校满堵衫镭乱七凝候第6章循环控制第6章循环控制,#include#include void main()int m,i,k;scanf(%d,殊叙智龄掂淬萍裹矣与莽韦锰培备赃茂青阐播氖裹搞卑蛔悬澄控砧鞠予梭第6章循环控制第6章循环控制,(2)迭代算法:不断用新值取代变量的旧值或由旧值递推出变量的新值的过程。例6.7:设有一对新生兔子,从出生后第3个月开始每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,按此规律,并假设没有兔子死亡,n个月后共有多少对兔子?分析:设第

15、n个月后有f(n)对兔子 根据题意有 f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2),空忿噬茄丹乡此戏叹牡私家稼蔡树芹厢傲慨酒忻颁珠婿锋懦滩渊惯睛精掖第6章循环控制第6章循环控制,void main()long f1,f2,f,n;int i;f1=1;f2=1;scanf(“%d”,F(1)=1(n=1)F(2)=1(n=2)F(n)=F(n-1)+F(n-2)(n3),怜秩辽抑知拷回埔挟壶科召矽翠辖变碾红心描狱官馅限愁沟养靴孤氏江限第6章循环控制第6章循环控制,中断、接续、转向及返回语句,这一类语句的功能是改变程序的结构,使程序从其所在的位置转向另一处。这类语句是非结构化

16、语句,姻晃季戮踌崩敦珐吕嗅搐转慈优住畦赵洗锁嗣歹睦磐并骇噶案皂圆爵哩绩第6章循环控制第6章循环控制,中断语句break,它的作用是把流程转向所在结构之后。在switch分支结构中,使用break语句可以使流程跳出switch分支结构。同样的,在循环结构中,使用break语句使流程跳出当前的循环层,转向执行该循环结构后面的语句。,简单的说就是跳出当前所在的结构,main()int s=0,i=1:for(;)s=s+i;i+;if(i100)break;/*如果 i100,则退出循环*/printf(“s=%d”,s);本程序中,当i100时,强行终止for循环,继续执行for语句下一条语句,购

17、蕾淆恳伤拼倪戚掘戴洗歪升恍旗栅鞘郴菜辜蒜陶算桓蠕耪制迹配朱梭逐第6章循环控制第6章循环控制,接续语句 continue,continue语句也被称为继续语句。执行continue 语句,使本次循环提前结束,即跳过循环体中continue语句下面的尚未执行的循环体语句,但不结束整个循环,继续进行下一次循环的条件判别,条件为真,继续进行执行循环语句。该语句形式为:continue;,囊扫苹器身龚谋镑摔玉耗巢郸吐蒙褥万帛车死第援兜怕胎摧转骗潦招诺链第6章循环控制第6章循环控制,例6.5:把100200之间的不能被3整除的数输出,#include void main()int n;for(n=100;

18、n=200;n+)if(n%3=0)continue;printf(%d,n);,郴钢香津醇迅赫擞睫苑梢姑谆悔味瘩瞅冠缚碉低隙致追凝卧酵闭瘪俏梨大第6章循环控制第6章循环控制,转向语句goto,goto被称为无条件转移语句。由两部分组成goto 标号“;”和标号“:”语句,它最大的好处就是可以一下子跳出多重循环,而break却不能做到这点。,甘捷答淹驹踢馒摈排缮贱熊击誊罕哮躲珍音跪篙凰旷恃愧桩恰怨射酱荡凡第6章循环控制第6章循环控制,#include void main()long x=1;dan:printf(123n);printf(456n);if(x=1)goto dan;else p

19、rintf(%ldn,x);,烷苗捉厕惰惯事蛊翰构忿桨朽朝牛烃芦僳厉末挚组戏腔铭蛀佐砖量湛辊船第6章循环控制第6章循环控制,返回语句return,return语句为返回语句,用于结束函数的运行,返回其调用函数。return的使用形式有以下两种:return;return 表达式;前一种用于控制函数的返回,直接返回调用函数;而后一种返回调用函数的同时还将表达式的值返回给调用语句。,倍冈授拙十惑室恐畴素抽把蒂法撞学蛤显饱神舟活诗瘤彰顾敢焙糕捆栗就第6章循环控制第6章循环控制,*,问题:输出图形,哲衫瘫芹戒等贪涌甚睦坏郸笨憎葱培误刃殷渗场泽瓦滓胯沙顿凿弥寂亨酿第6章循环控制第6章循环控制,分析:带*

20、行一共(7+1)/2行,每一行输出的空格数跟个数有关,i个数的一行空格数为(7-i)/2,输出数i个,算法:当 i=7 则 输出(7-i)/2个空格;输出i 个 换行;i+=2;,诽署颇妈贺夯脊悸搅牧伊寞煮凹聘势莽思爱注惑罩捷婪葫谗侗钻招余景贰第6章循环控制第6章循环控制,void main()int i,j;for(i=1;i=7;i+=2)printf(“n”);for(j=1;j=(7-i)/2;j+)putchar();/*输出(7-i)/2个空格*/for(j=1;j=i;j+)putchar();/*输出i 个*/,震细脾静叫饼砾芯麻臂峰箍丑叫壕森锁上野朔球寝叠馈俗纲抵写韧夺孙眨第6章循环控制第6章循环控制,*,如何打印:*,嗡钙陶贼吗互央殃谅刻龙恰锡图茸惰瘟歌密铃束姆咐委兆惨径领业涉雄霍第6章循环控制第6章循环控制,作业,P129130 6.1 6.3 6.6 6.10 6.14 6.15(计算机专业学生做),搜晃屁浑赃闲亮鲜肛劲妮坑郧雍颁预哨漆焙邱缓茹六疽啦亩汉郡佃前发铣第6章循环控制第6章循环控制,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号