版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省长春市德惠市九校2026届数学高三上期末质量跟踪监视试题含解析
- 河南省安阳三十六中2026届高二上生物期末检测试题含解析
- 2026届江西省南昌三校高三英语第一学期期末质量跟踪监视模拟试题含解析
- 2026届陕西省延安市实验中学大学区校际联盟高一数学第一学期期末联考试题含解析
- 吉林省四平市公主岭市第五高级中学2026届生物高一第一学期期末达标检测模拟试题含解析
- 广东省佛山市禅城区佛山实验中学2026届高一生物第一学期期末学业水平测试模拟试题含解析
- 风机性能评估与预测算法-洞察及研究
- 电池组的智能监控技术-洞察及研究
- 绿色施工技术在建筑业中的应用-洞察及研究
- 2026届江西师大附中高一生物第一学期期末教学质量检测试题含解析
- DB15∕T 2431-2021 荒漠藻扩繁培养技术规程
- 危险化学品经营企业安全生产费用提取
- 游戏俱乐部合伙协议书
- 境外宾客入住登记规范培训
- 幼儿园收费及财务公示制度文档
- 天津市河东区2026届七年级数学第一学期期末复习检测试题含解析
- 水库清淤申请书
- 2025年第五人格听力试卷及答案
- 药店三七活动方案
- 工商用户燃气安全培训课件
- 资产尽职调查管理办法
评论
0/150
提交评论