




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第六章循环结构,本章要点:第一节:概述(了解)第二节:goto语句(自学)第三节:while语句(掌握)第四节:do-while语句(掌握)第五节:for语句(掌握)第六节:循环的嵌套(掌握)第七节:循环的比较(理解)第八节:break语句和continue语句(掌握)第九节:程序举例(实验),第一节概述,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。用C语言实现循环共有四种方式:1、用goto语句和if语句构成循环;2、用while语句构成循环;3、用do-while语句构成循环;4、用for语句构成循环。,一般形式:,while(表达式)循环体语句;,执行流程:,第三节while语句,特点:先判断表达式,后执行循环体说明:循环体有可能一次也不执行循环体可为任意类型语句下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,goto无限循环:while(1)循环体;,例1:求1到100的累加和。,#includemain()inti,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);,例2:显示110的平方,main()inti=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=100,例3:统计从键盘输入一行字符的个数。#includemain()intn=0;printf(“Pleaseinputastring:n”);while(getchar()!=n)n+;printf(“%dn”,n);,第四节do-while语句,用来实现直到型循环;先执行语句,后判断表达式。一般形式:do语句while(表达式);一般情况下,do-while结构和while结构完全相同。但如果判断条件在最初为假时,则前者多执行一次。,执行流程:,说明:至少执行一次循环体dowhile可转化成while结构,例:求1到100的累加和。main()inti,sum=0;i=1;dosum=sum+i;i+;while(i=100);printf(“%d”,sum);,注意:1.在if语句,while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号。2.do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。3.在do和while之间的循环体由多个语句组成时,也必须用括起来组成一个复合语句。4.do-while和while语句相互替换时,要注意修改循环控制条件。,一般形式:,for(expr1;expr2;expr3)循环体语句;,执行流程:,第五节for语句,for语句一般应用形式:,for(循环变量赋初值;循环条件;循环变量增值)循环体语句;,说明:for语句中expr1,expr2,expr3类型任意,都可省略,但分号;不可省无限循环:for(;)for语句可以转换成while结构,expr1;while(expr2)循环体语句;expr3;,例:#includemain()inti=0;for(i=0;i10;i+)putchar(a+i);,运行结果:abcdefghij,例:#includemain()inti=0;for(;i10;i+)putchar(a+i);,例:#includemain()inti=0;for(;i10;)putchar(a+(i+);,例:#includemain()inti=0;for(;i10;putchar(a+i),i+);,省略exp1,循环体内语句,main()inti,j,k;for(i=0,j=100;i=j;i+,j-)k=i+j;printf(%d+%d=%dn,i,j,k);,#includemain()charc;for(;(c=getchar()!=n;)printf(%c,c);,Exp1,exp3:逗号表达式,#includemain()charc;for(;putchar(getchar()!=n;);,#includemain()inti;for(i=0;(getchar()!=n;i+=3)printf(%c,i);,并非循环控制量,例4:从2开始,输出n个连续的偶数。voidmain()inta=1,n,i;printf(“ninputn:”);scanf(“%d”,第六节循环的嵌套,一、循环的嵌套:一个循环体内又包含另一个完整的循环结构。可多层嵌套。二、嵌套的种类:三种循环都可以互相嵌套。1、whilewhile2、do-while-dowhilewhile()dowhile()do.while();while();,3、forfor4、forwhilefor(;)for(;)for(;)while()5、whiledo-while6、do-whileforwhile()dodofor(;)while();while();,例5:打印如右图图形。,*,main()inti,j,k;for(i=1;i=3;i+)for(j=1;j=3-i;j+)printf(“”);/*打印前导空格*/for(k=1;k=2*i-1;k+)printf(“*”);/*打印*符号*/printf(“n”);,问:输出5行呢,9行呢?输出n行程序怎样修改?,程序中的语句通常总是按顺序方向,或按语句功能所定义的方向执行的。如果需要改变程序的正常流向,可以使用转移语句。在语言中提供了4种转移语句:goto,break,continue和return。1.goto语句goto语句也称为无条件转移语句,其一般格式如下:goto语句标号;其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后加冒号(:)。,第七节转移语句,2、break语句break语句只能用在switch语句或循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。break语句的一般形式为:break;使用break语句可以使循环语句有多个出口,在一些场合下使编程更加灵活、方便。3、continue语句continue语句只能用在循环体中,其一般形式是:continue;其语义是:结束本次循环,即不再执行循环体中continue语句之后的语句,转入下一次循环条件的判断与执行。应注意的是,本语句只结束本层本次的循环,并不跳出循环。4、return语句,break、continue的流程图,例6:输出100200之间的不能被3整除的数。main()intn;for(n=100;n1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(pi=%10.6fn,pi);,运行结果:pi=3.141594,6.9程序举例(迭代),例6.7求Fibonacci数列前40个数。这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:F(1)=1(n=1)F(2)=1(n=2)F(n)=F(n-1)+F(n-2)(n3)算法如图所示:,例6.7求Fibonacci数列前40个数。#includevoidmain()longintf1,f2;inti;f1=1;f2=1;for(i=1;i=a,运行结果:China!Glmre!,小结:1.从程序执行的流程来看,程序可分为三种最基本的结构:顺序结构,分支结构以及循环结构2.程序中执行部分最基本的单位是语句。语言的语句可分为五类:(1)表达式语句:任何表达式末尾加上分号即可构成表达式语句,常用的表达式语句为赋值语句。(2)函数调用语句:由函数调用加上分号即组成函数调用语句。(3)控制语句:用于控制程序流程,由专门的语句定义符及所需的表达式组成。主要有条件判断执行语句,循环执行语句,转向语句等。(4)复合语句:由把多个语句括起来组成一个语句。复合语句被认为是单条语句,它可出现在所有允许出现语句的地方,如循环体等。(5)空语句:仅由分号组成,无实际功能。,3.语言中没有提供专门的输入输出语句,所有的输入输出都是由调用标准库函数中的输入输出函数来实现的。scanf和getchar函数是输入函数,接收来自键盘的输入数据。scanf是格式输入函数,可按指定的格式输入任意类型数据。getchar函数是字符输入函数,只能接收单个字符。printf和putchar函数是输出函数,向显示器屏幕输出数据。printf是格式输出函数,可按指定的格式显示任意类型的数据。putchar是字符显示函数,只能显示单个字符。除调用printf和scanf库函数外的其它库函数均需使用include命令将相关头文件包含到本程序中来。4.关系表达式和逻辑表达式是两种重要的表达式,主要用于条件执行的判断和循环执行的判断。,5.语言提供了多种形式的条件语句以构成分支结构。(1)if语句主要用于单向选择。(2)if-else语句主要用于双向选择。(3)if-else-if语和switch语句用于多向选择。这几种形式的条件语句一般来说是可以互相替代的。6.语言提供了三种循环语句。(1)for语句主要用于给定循环变量初值,步长增量以及循环次数的循环结构。(2)循环次数及控制条件要在循环过程中才能确定的循环可用while或do-while语句。(3)三种循环语句可以相互嵌套组成多重循环。(4)可用转移语句把流程转出循环体外,但不能从外面转向循环体内。(5)在循环程序中应避免出现死循环,即应保证循环变量的值在运行过程中可以得到修改,并使循环条件逐步变为假,从而结束循环。,C语言语句小结:名称一般形式简单语句表达式语句,函数调用语句;空语句;复合语句语句;条件语句if(表达式)语句;if(表达式)语句1;else语句2;if(表达式1)语句1;elseif(表达式2)语句2else语句n;开关语句switch(表达式)case常量表达式:语句default:语句;,循环语句:while语句while(表达式)语句;for语句for(表达式1;表达式2;表达式3)语句;break语句break;goto语句goto;continue语句continue;return语句return(表达式);或return表达式;,本章作业:(P120)必做题:1、4、8、10、14选做题:2、补充题:1、设计一个程序要求输入两个整数x和n,计算xn;,#include”stdio.h”main()intn,k=1,s=0,m,r;for(n=1;ns)printf(“%d”,n);,例:输出1-100之间符合如下条件的数:该数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中思想政治读本课件
- 高三地球在宇宙中课件
- 高三二轮光电效应课件
- 高一物理摩擦力课件
- 《离婚谈判策略解析:三策略离婚调解协议书》
- 物业服务合同中物业服务企业责任与义务界定
- 矿业股份及矿山开采权转让与综合开发管理协议
- 行政合同在数字经济时代的创新与实践
- 离婚双方财产分配与子女抚养责任移交协议模板
- 广告创意迭代代理执行合同
- 铁路作业人员安全课件
- 2025年医疗质量管理质控培训考核试题(含答案)
- 【轻质减负】第2课《中国人首次进入自己的空间站》情境化教学课件
- 心电图课件教学
- 浮吊安全知识培训课件
- 2025年边境巡逻机群无人机协同战术应用
- 后勤人员消防知识培训课件
- 中药饮片养护技术
- 八上必背文言文解析(全册)
- 2025年高等教育法学类自考-00859警察组织行为学历年参考题库含答案解析(5套典型考题)
- 2025年大队委选拔笔试题目及答案
评论
0/150
提交评论