




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章,循环控制,5.1概述,什么是循环?为什么要使用循环?,问题1:,问题2:求学生平均成绩分数相加后除以课数,在许多问题中需要用到循环控制。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。,5.3用while语句实现循环,while语句用来实现“当型”循环结构。一般形式:while(表达式)语句当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。,求1到100的和#includevoidmain()inti,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);,说明:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现.(2)在循环体中应有使循环趋向于结束的语句。,运行结果:5050,初始化,循环终止测试条件,循环体,循环增量,5.4用do-while语句实现循环,do-while语句的特点:先执行循环体,然后判断循环条件是否成立。一般形式:do循环体语句while(表达式);,执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。,求1到100的和#includevoidmain()inti,sum=0;i=1;dosum=sum+i;i+;while(i=100);printf(%dn,sum);,运行结果:5050,while语句和用do-while语句的比较:在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但是如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。,while和do-while循环的比较#include#includevoidmain()voidmain()intsum=0,i;intsum=0,i;scanf(“%d,,运行结果:1sum=55再运行一次:11sum=0,运行结果:1sum=55再运行一次:11sum=11,说明:(1)当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同。否则,二者结果不相同。,5.5用for语句实现循环,C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。一般形式:for(表达式1;表达式2;表达式3)语句,for语句的执行过程:(1)先求解表达式1。(2)求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。(3)求解表达式3。(4)转回上面第(2)步骤继续执行。(5)循环结束,执行for语句下面的一个语句,for(表达式1;表达式2;表达式3)语句,5.5用for语句实现循环,循环初始条件,循环控制条件,循环体,for语句等价于下列语句:表达式1;while(表达式2)语句;表达式3;,5.5用for语句实现循环,for语句最简单的形式:for(循环变量赋初值;循环条件;循环变量增值),例如:for(i=1;i=100;i+)sum=sum+i;,相当于:i=1;while(i=100)sum=sum+i;i+;,用for语句简单、方便。,5.7循环的嵌套,下面几种都是合法的形式:(1)while()(2)do(3)for(;)while()dofor(;)while();while();,5.7循环的嵌套,(4)while()(5)for(;)(6)dodowhile()for(;)while()while(),问题提出,*main()printf(“*”);,*main()inti;for(i=1;i=5;i+)printf(“*”);,*main()inti,j;for(i=1;i=5;i+)for(j=1;j=5;j+)printf(“*”);printf(“n”);,现场编程完成例,编程输出如下形式的乘法九九表,#includemain()intm,n;for(m=1;m10;m+)printf(%4d,m);/*打印表头*/printf(n);for(m=1;m10;m+)printf(-);printf(n);for(m=1;m10;m+)for(n=1;n10;n+)printf(%4d,m*n);printf(n);,现场编程完成,将上例输出格式改成如下的下三角格式打印,#includemain()intm,n;for(m=1;m10;m+)printf(%4d,m);/*打印表头*/printf(n);for(m=1;m10;m+)printf(-);printf(n);for(m=1;m10;m+)for(n=1;n100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。,5.8break语句和continue语句,5.8.2continue语句作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.一般形式:continue;,5.8break和continue语句,continue语句和break语句的区别continue语句只结束本次循环,而不是终止整个循环的执行。,while(表达式1)if(表达式2)continue;,5.8break语句和continue语句,continue和break的区别break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。,while(表达式1)if(表达式2)break;,例6.5把100200之间的不能被3整除的数输出#includevoidmain()intn;for(n=100;n=200;n+)if(n%3=0)continue;printf(%d,n);,说明:当n能被3整除时,执行continue语句,结束本次循环(即跳过printf函数语句),只有n不能被3整除时才执行printf函数。,水仙花数:打印100-10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生跳水课件设计
- 2025内蒙古航投实业有限公司招聘6人笔试历年参考题库附带答案详解
- 小学生课件藏文图片
- 机场无线电台操纵修理工理论学习手册练习试题及答案
- 聚氯乙烯装置操作工职业技能鉴定经典试题含答案
- 平版印刷员技能测试题库及答案
- 药理毒理试验员公司招聘笔试题库及答案
- 铁合金原料工职业技能模拟试卷含答案
- 继电器装配工基础技能培训手册
- 玻璃钢制品检验员实操任务书
- 【扶臂式挡土墙迎水坡和背水坡堤防整体抗滑稳定计算案例1200字】
- 建筑工程质量安全监督考试题库
- 四川省广元市2024-2025学年第二学期八年级期末考试数学试卷(无答案)
- 死亡病例讨论制度落实与质控优化
- 在线学习课堂《项目管理概论》单元考核测试答案
- 痛经的中医护理
- DB32∕T 5048-2025 全域土地综合整治项目验收规范
- 辽阳市“三支一扶”计划招募考试真题2024
- 电信防诈骗培训课件
- 业务技巧培训
- 采购培训课件
评论
0/150
提交评论