版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计基础教程语言程序设计基础教程第5章 循环结构程序设计C语言程序设计基础教程语言程序设计基础教程C语言程序设计基础教程语言程序设计基础教程C语言程序设计基础教程语言程序设计基础教程 循环结构是结构化程序设计的基本结构之一,它的特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。语言提供了多种实现循环的语句,可以组成各种不同形式的循环结构。 用while语句 用do-while语句 用for语句C语言程序设计基础教程语言程序设计基础教程while语句可以用来实现“当型”循环结构。 1)格式:while(表达式)语句(表达
2、式)语句2)执行过程其特点是:先判断表达式,后执行语句。5.1 while语句C语言程序设计基础教程语言程序设计基础教程【例5-1】用while语句求1100的累计和。#includestdio.hmain() int i=1,sum=0; while(i=100) sum=sum+i; i+; printf(%dn,sum);程序运行结果如下:50505.1 while语句C语言程序设计基础教程语言程序设计基础教程使用while语句应注意以下几点:(1) while循环结构的特点是“先判断,后执行”。如果表达式的值一开始为“假”,则循环体一次也不执行。 (2) while语句中的表达式一般是
3、关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。(3) 为使循环能够正确开始运行,需要对循环控制变量初始化。(4) 循环体中,如果包含一个以上的语句,则应用花括号括起来,构成复合语句,否则while语句的范围只到while后面第1个分号处。(5) 循环体内中应有使循环趋向于结束的语句。5.1 while语句C语言程序设计基础教程语言程序设计基础教程【例5-2】从键盘输入30个学生的成绩,对其进行处理;如果成绩及格,则输出“Passed”,否则输出“Failed”。#includestdio.hmain()int n=1; float score;while (n=60.0)pr
4、intf(Passedn);else printf(Failedn);n+; 5.1 while语句C语言程序设计基础教程语言程序设计基础教程dowhile语句可以用来实现“直到型”循环结构。 1)格式:do语句语句while(表达式);(表达式);2)执行过程 这个循环与while循环的区别在于,它先执行后判断,因此,do-while循环至少要执行一次循环体。而while循环是先判断后执行,如果条件不满足,则循环体语句一次也不执行。5.2 dowhile语句C语言程序设计基础教程语言程序设计基础教程【例5-3】用do-while语句求1100的累计和。#includestdio.hmain(
5、)int i=1,sum=0;dosum=sum+i;i+;while(i=100) ; printf(%dn,sum);程序运行结果如下:50505.2 dowhile语句C语言程序设计基础教程语言程序设计基础教程使用do-while语句应注意以下几点:(1) do是C语言的关键字,必须与while联合使用。(2) 在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面必须加分号,它表示do-while语句的结束,否则将产生语法错误。(3) while后面一对圆括号中的表达式,可以是C语言中任意合法的表达式。由它控制循环是否执行。(4) 和while语句一
6、样,在使用do-while语句时,不要忘记初始化循环控制变量,否则执行的结果将是不可预知的。(5) 要在do-while语句的某处(表达式或循环体内)改变循环控制变量的值,否则极易构成死循环。(6) 按照语法规则,在do和while之间的循环体只能是一条可执行语句。若循环体内需要多个语句,应该用花括号括起来,组成复合语句。5.2 dowhile语句C语言程序设计基础教程语言程序设计基础教程【例5-4】将输入的一串字符显示在屏幕上,遇到空格时停止。#includestdio.hmain() char c;printf(nPlease input a string:);doc=getchar();
7、 putchar(c); while(c!= );程序运行结果如下:Please input a string:Homework in the schoolHomework5.2 dowhile语句C语言程序设计基础教程语言程序设计基础教程【例5-5】while语句和do-while语句的比较。main( ) int s=0,n; scanf(%d,&n); while(n= 10) s = s + n; n+; printf(%d,s); main( ) int s=0,n; scanf(%d,&n); do s = s + n; n+; while(n10时,两者结果不同。
8、这是因为此时对while循环来说,一次也不执行循环体(表达式“i=100”为假),而对do-while循环语句来说,则要执行一次循环体。可以得到结论:当while后面的表达式的第1次的值为“真”时,两种循环得到的结果相同,否则,两者结果不相同(指两者具有相同的循环体的情况)。5.2 dowhile语句C语言程序设计基础教程语言程序设计基础教程for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合用于已知循环次数的情况。1)格式:for(表达式(表达式1;表达式;表达式2;表达式;表达式3)语句)语句2)执行过程 5.3 for语句C语言程序设计基础教程语言程序设计基础教程【例5-6】
9、用for语句求1100的累计和。#includestdio.hmain() int s=0,n=1; for(n=1;n=100;n+) s=s+n; printf(s=%dn,s);程序运行结果如下:50505.3 for语句C语言程序设计基础教程语言程序设计基础教程使用for语句应注意以下几点:(1) for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺少,但“;”不能缺少。(2) 省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值。(3) 省略了“表达式2(循环条件)”,则不做其他处理时便成为死循环。(4)
10、 省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在循环体中加入修改循环控制变量的语句。5.3 for语句C语言程序设计基础教程语言程序设计基础教程使用for语句应注意以下几点:(5) 省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。(6) 3个表达式都可以省略。(7) 表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。(8) 表达式1和表达式3可以是简单表达式,也可以是逗号表达式。(9) 表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。5.3 for语句C语言程序设计基础教程语言程序设
11、计基础教程【例5-7】输出1001000之间同时能被4和6同时整除的数及其和。#includestdio.hmain()float s=0;int i;for(i=100;i=1000;i+)if(i%4=0&i%6=0)s=s+i;printf(%5d,i);printf(s=%fn,s);5.3 for语句C语言程序设计基础教程语言程序设计基础教程【例5-8】在3100之间所有3的倍数中,找出个位数为2的数。#includestdio.hmain() int i=0; for(i=3;i=100;i+) if(i%3=0&i%10=2) printf(%4d,i); pri
12、ntf(n);5.3 for语句程序运行结果如下:12 42 72C语言程序设计基础教程语言程序设计基础教程【例5-9】一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?#includestdio.hmain()float sn=100.0,hn=sn/2;int n;for(n=2;n=10;n+)5.3 for语句C语言程序设计基础教程语言程序设计基础教程sn=sn+2*hn; hn=hn/2; printf(the total of road is %fn,sn);printf(the tenth is %f met
13、ern,hn);5.3 for语句程序运行结果如下:the total of road is 299.609375the tenth is 0.097656 meterC语言程序设计基础教程语言程序设计基础教程5.4 循环嵌套一个循环的循环体中有另一个循环称为循环嵌套。这种嵌套过程可以有很多重。一个循环外面仅包围一层循环称为二重循环;一个循环外面包围两层循环称为三重循环;一个循环外面包围多层循环称为多重循环。循环嵌套的层数理论上无限制。C语言程序设计基础教程语言程序设计基础教程在使用循环嵌套时应注意以下几点:(1) 在嵌套的各层循环中,应使用复合语句(即用一对花括号将循环体语句括起来),以保证
14、逻辑上的正确性;(2) 内层和外层循环控制变量不应同名,以免造成混乱;(3) 嵌套循环最好采用右缩进格式书写,以保证层次的清晰性;(4) 循环嵌套不能交叉,即在一个循环体内必须完整地包含另一个循环。循环嵌套执行时,先由外层循环进入内层循环,并在内层循环终止之后接着执行外层循环,再由外层循环进入内层循环。当外层循环全部终止时,程序结束。5.4 循环嵌套C语言程序设计基础教程语言程序设计基础教程【例5-11】打印九九乘法口诀表。#includestdio.hmain()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%-3d,j,i,i*j);
15、printf(n);程序运行结果如下:1*1= 11*2= 2 2*2=41*3= 3 2*3=6 3*3=91*4= 4 2*4=8 3*4=12 4*4=16 5.4 循环嵌套C语言程序设计基础教程语言程序设计基础教程5.5 几种循环的比较几种循环的比较如下:(1) 3种循环都可以用来处理同一个问题,一般可以互相代替。(2) while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强。(3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。(4) whil
16、e循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句见5.6节)。C语言程序设计基础教程语言程序设计基础教程5.6 break语句和continue语句 5.6.1 break语句当break语句用于while、do-while、for循环语句中时,可使程序终止循环而执行循环后面的语句。1)格式: if(表达式)(表达式)break;2)执行过程:while(表达式(表达式1) if(表达式(表达式2)break; C语言程序设计基础教程语言程序设计基础教程【例5-14】读入5个正整数并且显示它们。当程
17、序读入的数据为负数时,程序立即终止。#includestdio.hmain() int i,n;for(i=1;i=5;i+)printf(please enter n:);scanf(%d,&n);if(n0) break;printf(n=%dn,n);printf(Program is over!n);5.6 break语句和continue语句程序运行结果如下:please enter n:10n=10Please enter n:-10Program is over!C语言程序设计基础教程语言程序设计基础教程使用break语句应注意以下几点:(1) break语句只能用于循环
18、结构或switch选择结构中。如果在程序中有下列语句:if()break;则此时的if语句一定位于循环体中或switch语句中,break语句跳出的也不是if语句,而是跳出包含此if语句的循环体或switch语句。(2) 由于循环语句的循环体部分还可以使用循环语句,这样,循环语句就可以嵌套使用。在循环语句嵌套使用的情况下,break语句只能跳出(或终止)包含它的最近一层的循环体,而不能同时跳出(或终止)多层循环。5.6 break语句和continue语句C语言程序设计基础教程语言程序设计基础教程 5.6.2 continue语句continue语句与break语句不同,当在循环体中遇到con
19、tinue语句时,程序将跳过continue语句后面尚未执行的语句,开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。1)格式:if(表达式)(表达式) continue; 2)执行过程:while(表达式(表达式1) if(表达式(表达式2)continue;5.6 break语句和continue语句C语言程序设计基础教程语言程序设计基础教程【例5-16】求输入的10个整数中正数的个数及其平均值。#includestdio.hmain() int i,a,num=0;float sum=0;for(i=0;i10;i+) scanf(%d,&a); if(a=0) continue; num+; sum+=a;printf(%d plus integers sum:%.0fn,num,sum);printf(average value:%.2fn,sum/num);5.6 break语句和continue语句C语言程序设计基础教程语言程序设计基础教程使用continue语句应注意以下几点:(1) continue语句只能用于while、do-while、for构成的循环结构中,常与if条件语句一起使用,用来加速循环。(2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中艺术创意实践第 3 单元第 1 课空间透视的建筑绘画知识点
- 2026年车载安全服务合同协议
- 公司2025年员工体检健康协议
- 《GB-T 25440.1-2021外科植入物的取出与分析 第1部分:取出与处理》专题研究报告
- 《JBT 14899-2024起重机 隔爆型制动器》专题研究报告
- 《GYT 309-2017数字电影数据包(DCP)标题命名与载体标识技术规范》专题研究报告
- 案件盯办制度
- 村卫生室门诊登记制度
- 陕西省武功县长宁高级中学2026年高三下学期第一次模拟考试生物试题文试题含解析
- 湖北省荆门市重点中学2026届高三模拟卷(一)化学试题含解析
- 2026年1月浙江省高考(首考)英语试题(含答案)+听力音频+听力材料
- 小儿脓毒症教学课件
- 2026年江苏卫生健康职业学院单招职业倾向性测试必刷测试卷及答案解析(名师系列)
- 高校行政人员笔试试题(附答案)
- 2025年《汽车行业质量管理》知识考试题库及答案解析
- 职高生理专业考试题及答案
- 创伤病人的评估和护理
- 设备委托开发合同(标准版)
- 四年级上册数学脱式计算大全500题及答案
- 2023年华北水利水电工程集团有限公司招聘笔试真题
- 《乌鲁木齐市国土空间总体规划(2021-2035年)》
评论
0/150
提交评论