版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7讲第4章 循环程序设计4.1 循环概述4.2 while语句4.3 for语句4.4 dowhile语句4.5 循环的嵌套4.6 break与continue语句循环的嵌套三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但不能相互交叉嵌套循环的执行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .内循环外循环内循环嵌套循环的跳转禁止:从外层跳入内层跳入同层的另一循环向上跳转 4.5 辅助控制语句br
2、eak语句功能:在循环语句和switch语句中,终止并跳出循环体或开关体说明:break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(非0)whileexpr2break;.假(0)真(非0)forexpr1expr3switchexpr语句组1break;语句组2break;语句组nbreak;语句组break;.const 1const 2const ndefaultcase 例 break举例:输出圆面积,面积大于100时停止#define PI 3.14
3、159fvoid main() int r; float area; for(r=1;r100)break; printf(r=%d,area=%.2fn,r,area); 例 break举例:小写字母转换成大写字母,直至输入非字母字符#include void main() int i,j; char c; while(1) c=getchar(); if(c=a & c=z) putchar(c-a+A); else break; continue语句功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中exprcontinue;假(0)真(非0)w
4、hile真(非0)docontinue;.expr假(0)whileexpr2continue;.假(0)真(非0)forexpr1expr3例 求输入的十个整数中正数的个数及其平均值#include void main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,&a);if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num);循环小结例:某个班有10个学生。已知他们
5、参加某次考试的成绩(0到100之间的整数),求全班学生在这次考试中的总成绩。#include main() int counter,score,total=0; printf(Enter score:); for(counter=1;counter=10;counter+) scanf(%d,&score); total+=score; printf(Class average is %dn,total/10);例:某个班有若干个学生。已知他们参加某次考试的成绩(0到100之间的整数),求全班学生在这次考试中的总成绩。#include void main() int counter=1, sc
6、ore, total=0; printf(Enter score,-1 to end:); scanf(%d,&score); while(score!=-1) total+=score; counter+; printf(“Enter score,-1 to end:”); scanf(“%d”,&score); printf(Class average is %d,total/(counter-1); 前面讨论了两种循环: 1)计数器控制的循环 2)标志控制的循环 因为我们事先能够准确地知道计数器的循环会执行多少次,所以把计数器控制的循环有时称为“定数循环”;因为我们事先不知道标志控制的循
7、环会执行多少次,所以把标记控制的循环有时称为“不定数循环”。 在计数器控制的循环中,控制变量用来计算循环的次数。控制变量的值在每次执行完一组循环指令后递增(或递减)。当控制变量的值表明达到了预定的循环次数时,循环终止并继续执行循环结构后的语句。 在如下情况下可用标记值控制循环过程: 1)事先不知道准确的循环次数 2)循环体中包含每次循环都要获取数据的语句 标记值表示获取数据的结束。标记值是在所有合法数据项都提供给程序后键入的值。标记值必须不同于正常的数据项。例:协助破案。假设已经查清,有A、B、C、D、E五个嫌疑人可能参与制造了一起抢劫银行案,但是不知道其中哪几个人是真正的案犯。不过,有确凿证
8、据表明: 如果A参与了作案,则B和C一定会参与。 B和C两人中只有一人参与了作案。 C和D要么都参与了作案,要么都没有参与。 D和E两人中至少有一人参与作案。 如果E作案,则A和D一定参与作案。main() int a,b,c,d,e; int count=0; for(a=0;a2;a+) for(b=0;b2;b+) for(c=0;c2;c+) for(d=0;d2;d+) for(e=0;e=1); count+=(e=0|(e=1&a=1&d=1); if(count=5) goto finish; finish: printf(Suspect a is %s.n,(a=1)?a c
9、riminal:not a criminal); printf(Suspect b is %s.n,(b=1)?a criminal:not a criminal); printf(Suspect c is %s.n,(c=1)?a criminal:not a criminal); printf(Suspect d is %s.n,(d=1)?a criminal:not a criminal); printf(Suspect e is %s.n,(e=1)?a criminal:not a criminal);循环语句的效率建议一:在多重嵌套循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,这样可以减少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; 循环语句的效率建议二:如果循环体内存在逻辑判断,并且循环次数很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年03月工银安盛人寿保险有限公司(中国工商银行)2024年度春季校园招考80名工作人员笔试历年参考题库附带答案详解
- 2025年度城市综合体物业综合服务合同示范3篇
- 2024年离婚最快途径:了解诉讼离婚与协议离婚3篇
- 宁波浙江宁波市智慧城市规划标准发展研究院招聘聘用制研究人员笔试历年典型考点(频考版试卷)附带答案详解
- 2025年度会展租赁服务与广告投放合同3篇
- 2024年进出口交易委托代理协议要览
- 2024年中国琥珀消食颗粒市场调查研究报告
- 2025年度绿色环保型SPF猪饲养费项目合作协议
- 呼伦贝尔2024年内蒙古根河市事业单位艺术专业技术岗位招聘4人笔试历年典型考点(频考版试卷)附带答案详解
- 2025版新材料研发中心项目可研报告编制合同3篇
- 2023年房车设计工程师年度总结及下一年计划
- 南非的地理特点
- 2023年硬件研发工程师年度总结及下年工作展望
- 北京版二年级语文上册期末综合测试卷含答案
- 教代会提案表格
- 中国联通黑龙江分公司提升客户满意度的策略研究
- JGJ406T-2017预应力混凝土管桩技术标准附条文
- 苏教版科学四年级上全册单元达标测试卷(一)附答案
- Unit1CulturalHeritage词汇讲解课件高中英语课堂精美课件(人教版2019)
- 《严以律已+做遵纪守法的好少年+主题班会教育》
- 简易精神状态评价量表(MMSE量表)
评论
0/150
提交评论