欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第06章循环控制.ppt

    • 资源ID:529433       资源大小:686KB        全文页数:32页
    • 资源格式: PPT        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第06章循环控制.ppt

    第六章 循环控制 循环结构是一种重要的程序结构,它与顺序结构、分支结构循环结构是一种重要的程序结构,它与顺序结构、分支结构一起构成三大基本结构。一起构成三大基本结构。循环是相似重复循环是相似重复,重复是完成工作的重要方法重复是完成工作的重要方法:实例实例1.考试后老师要对考试情况进行汇总,计算出全班考试后老师要对考试情况进行汇总,计算出全班N个学生个学生的平均分。的平均分。实例实例2.到超市购物完毕发现小票上写着共计到超市购物完毕发现小票上写着共计22件件 实例实例3.听说某某书写得非常精彩,冲到书店按分类找到书架听说某某书写得非常精彩,冲到书店按分类找到书架 循环的共同点:循环的共同点:重复发生前通常需要做一些准备工作。重复发生前通常需要做一些准备工作。被重复的操作是被重复的操作是“相似相似”的而不是的而不是“相同相同”的的(3)重复一定有终止的时候。重复一定有终止的时候。对重复操作进行控制对重复操作进行控制 条件判断条件判断条件判断条件判断操操 作作操操 作作C语言中提供了三种循环控制语句:语言中提供了三种循环控制语句:for语句、语句、while语句和语句和dowhile语句,前两个是语句,前两个是“先判断后循环先判断后循环”的模式,后一个是的模式,后一个是“先循环后判断先循环后判断”的模式。的模式。概述C语言可实现循环的语句:用goto 和 if 构成循环while 语句do while 语句for 语句goto语句及用goto构成循环goto语句一般格式:goto 语句标号;.标号:语句;v功能:无条件转移语句v说明:l不能用整数作标号l标号只能出现在goto所在函数内,且唯一l标号只能加在可执行语句前面l限制使用goto语句求求1100的累计和。的累计和。根据已有的知识,可以用根据已有的知识,可以用“1+2+100”来求解,但显然很繁来求解,但显然很繁琐。现在换个思路来考虑:琐。现在换个思路来考虑:首先设置一个累计器首先设置一个累计器sum,其初值为,其初值为0,利用,利用sum+=n来计算(来计算(n依次取依次取1、2、100),只要解决以下),只要解决以下3个问题即可:个问题即可:(1)将)将n的初值置为的初值置为1;(2)每执行)每执行1次次“sum+=n”后,后,n增增1;(3)当)当n增到增到101时,停止计算。此时,时,停止计算。此时,sum的值就是的值就是1100的累计和。的累计和。根据已有的知识,单独实现每一步都不难。但是,由于需要根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环结构),经常使用这种重复计算结构(称为循环结构),C语言提供了语言提供了3条循环语句来实现,以简化、并规范循环结构程序设计。条循环语句来实现,以简化、并规范循环结构程序设计。在语言中,可用以下语句实现循环:在语言中,可用以下语句实现循环:(1)用)用for语句。语句。(2)用)用do-while语句。语句。(3)用)用while语句。语句。(4)用用GOTO 语句语句Ch5_1.c例 用if 和goto语句构成循环,求1001nn/*ch5_1.c*/#include main()int i,sum=0;i=1;loop:if(i=100)sum+=i;i+;goto loop;printf(%d,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循环初值循环终值循环变量增值循环条件循环体Ch5_11.c例 从键盘输入一组数据,以0结束输入,求数据和/*ch5_11.c*/#include main()int number,sum=0;read_loop:scanf(%d,&number);if(!number)goto print_sum;sum+=number;goto read_loop;print_sum:printf(The total sum is%dn,sum);while语句v一般形式:while(表达式)循环体语句;v执行流程:expr循环体假(0)真(非0)whilev特点:先判断表达式,后执行循环体v说明:l循环体有可能一次也不执行l循环体可为任意类型语句l下列情况,退出while循环u条件表达式不成立(为零)u循环体内遇break,return,gotol无限循环:while(1)循环体;Ch5_2.c例 用while循环求 1001nn/*ch5_2.c*/#include main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);循环初值循环终值循环变量增值循环条件循环体Ch5_21.c例 显示110的平方/*ch5_21.c*/#include main()int i=1;while(i=10)printf(%d*%d=%dn,i,i,i*i);i+;运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100dowhile语句v一般形式:do 循环体语句;while(表达式);v执行流程:do循环体expr假(0)真(非0)whilev特点:先执行循环体,后判断表达式v说明:l至少执行一次循环体ldowhile可转化成while结构expr循环体假(0)真(非0)循环体While循环Ch5_3.c例 用dowhile循环求 1001nn/*ch5_3.c*/#include main()int i,sum=0;i=1;do sum+=i;i+;while(i=100);printf(%d,sum);Ch5_4.c例 while和dowhile比较/*ch5_4.c*/#include main()int i,sum=0;scanf(%d,&i);do sum+=i;i+;while(i=10);printf(%d,sum);main()int i,sum=0;scanf(%d,&i);while(i=10)sum+=i;i+;printf(%d,sum);for语句v一般形式:for(expr1;expr2;expr3)循环体语句;v执行流程:expr2循环体假(0)真(非0)forexpr1expr3vfor语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环体语句;v说明:lfor语句中expr1,expr2,expr3 类型任意,都可省略,但分号;不可省l无限循环:for(;)lfor语句可以转换成while结构expr1;while(expr2)循环体语句;expr3;例 用for循环求 1001nn#include main()int i,sum=0;for(i=1;i=100;i+)sum+=i;printf(%d,sum);【例例6.7】编写程序,用编写程序,用“辗转相除法辗转相除法”求两个正整数的最大公约求两个正整数的最大公约数。数。分析:分析:“辗转相除法辗转相除法”求最大公约数基于数学上的知识:对于两个求最大公约数基于数学上的知识:对于两个正整数正整数a和和b,记,记gcd(a,b)表示表示a与与b的最大公约数,若的最大公约数,若a除以除以b的余数的余数是正整数是正整数c,则,则gcd(a,b)=gcd(b,c)。与普通的短除法求最大公约数。与普通的短除法求最大公约数相比,辗转相除法可以更快地求得结果。例如,用辗转相除法求相比,辗转相除法可以更快地求得结果。例如,用辗转相除法求gcd(3324,1044)的具体过程)的具体过程:33241044=3192这说明这说明3324与与1044的最大公约数就等于的最大公约数就等于1044与与192的最大公约数。求的最大公约数。求1044与与192的最大公约数可以再次利用辗转相除法,并把这一过程重复下的最大公约数可以再次利用辗转相除法,并把这一过程重复下去,直到求得的余数为去,直到求得的余数为0。1044 192=584 192 84=224 84 24=312 24 12=20 最后一次的除数最后一次的除数12就是所求结果,即就是所求结果,即gcd(3324,1044)=12#include main()int a,b,c;printf(Input two integers(0):);scanf(%d%d,&a,&b);printf(gcd(%d,%d)=,a,b);while(b0)c=a%b;a=b;/*把刚才的除数放到把刚才的除数放到a中中*/b=c;/*把刚才的余数放到把刚才的余数放到b中中*/printf(%d,a);(1)循环体中循环体中a=b的操作和的操作和b=c的操作能否颠倒次序?的操作能否颠倒次序?(2)能不能把程序中的后两个能不能把程序中的后两个printf合并到一起,写在合并到一起,写在while循环的后面?循环的后面?(3)从键盘输入的两个数前大后小是正常情况,如果前小后大程序还能求出正确从键盘输入的两个数前大后小是正常情况,如果前小后大程序还能求出正确结果吗?结果吗?(4)在例在例6.7中并没有对键盘输入两个整数的正确性进行判断,如果输入数据有问中并没有对键盘输入两个整数的正确性进行判断,如果输入数据有问题,比如输入的是负数或零,程序可能出现异常结果。你能否为该程序加上判断功题,比如输入的是负数或零,程序可能出现异常结果。你能否为该程序加上判断功能?能?循环的嵌套v三种循环可互相嵌套,层数不限v外层循环可包含两个以上内循环,但不能相互交叉v嵌套循环的执行流程(1)while()while().(2)do do while();.while();(3)while()do while();.(4)for(;)do while();while().v嵌套循环的跳转禁止:l从外层跳入内层l跳入同层的另一循环l向上跳转Ch5_5.c例 循环嵌套,输出九九表1234567891234567892468101214161836912151821242791827364554637281.ij/*ch5_5.c*/#include main()int i,j;for(i=1;i10;i+)printf(%4d,i);printf(n-n);for(i=1;i10;i+)for(j=1;j10;j+)printf(j=9)?%4dn:%4d,i*j);i10printf假(0)真(非0)i=1j+j=1j10真(非0)假(0)i+for(i=1;i10;i+)for(j=1;j10;j+)printf(j=9)?%4dn:%4d,i*j);外循环内循环为了使循环控制更加灵活,语言提供了为了使循环控制更加灵活,语言提供了break语句和语句和continue语句。语句。1一般格式:一般格式:break;continue;2功能功能(1)break:强行结束循环,转向执行循环语句的下一条语句。:强行结束循环,转向执行循环语句的下一条语句。(2)continue:对于:对于for循环,跳过循环体其余语句,转向循循环,跳过循环体其余语句,转向循环变量增量表达式的计算;对于环变量增量表达式的计算;对于while和和do-while循环,跳过循循环,跳过循环体其余语句,但转向循环继续条件的判定。环体其余语句,但转向循环继续条件的判定。3break和和continue语句对循环控制的影响如图语句对循环控制的影响如图5-4所示。所示。4说明说明(1)break能用于循环语句和能用于循环语句和switch语句中,语句中,continue只能用只能用于循环语句中。于循环语句中。(2)循环嵌套时,)循环嵌套时,break和和continue只影响包含它们的最内层只影响包含它们的最内层循环,与外层循环无关。循环,与外层循环无关。break语句与语句与continue语句语句exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(非0)whileexpr2b

    注意事项

    本文(第06章循环控制.ppt)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开