C语言程序设计第5章--循环结构程序设计_第1页
C语言程序设计第5章--循环结构程序设计_第2页
C语言程序设计第5章--循环结构程序设计_第3页
C语言程序设计第5章--循环结构程序设计_第4页
C语言程序设计第5章--循环结构程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计主编:连卫民 何 樱第5章 循环结构程序设计本章主要内容:5.1 for 语句(重点)5.2 while 语句(重点)5.3 do-while 语句5.4 break 和 continue 语句5.5 多重循环(重点)5.6 循环结构程序设计举例本章教学要求:了解循环结构的概念 熟悉循环结构程序设计的方法 掌握while、do-while、for循环控制语句的使用方法。 5.1 for 语句本节主要介绍循环结构的概念以及循环结构程序能解决的问题。 循环结构的概念定义:循环是指在所设计的程序中,有条件地反复执行某一段程序的现象。循环结构是结构化程序设计中一种很重要的结构,又称为重复

2、结构。循环的特点:在给定条件成立时,反复执行某个程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。循环结构的分类:当型循环结构和直到型循环结构。 循环条件和循环体设置不好,很可能得不到预期的结果,甚至出现死循环。 第5章 循环结构程序设计5.1 for 语句5.1.1 for语句的格式for语句的一般格式为:for(表达式;表达式;表达式) 语句;其中:表达式1: 为循环变量赋初值表达式2: 为循环继续的条件表达式3: 为循环变量的增值语句: 又被称为循环体,它是当表达式2为真(非0)时要重复执行的语句,它可以由一条语句或复合语句组成。 第5章 循环结构程序设计5

3、.1 for 语句5.1.2 for语句的执行过程(1)计算表达式1的值,给循环变量赋初值,表达式仅在进入for语句时执行一次。(2)判断表达式2的值,若其为“真”(非0),则执行循环体语句,然后转到第(3)步;若其为“假”(0),则结束循环,执行for语句的下一条语句。(3)计算表达式3的值。表达式3改变循环变量的值,它在每次执行完循环体语句之后,都要被执行一次。然后返回第(2)步继续执行。 for语句的执行过程流程图如图5-1所示。第5章 循环结构程序设计5.1 for 语句第5章 循环结构程序设计5.1 for 语句说明:(1)for语句的使用非常灵活,它的三个表达式可以省略1个或2个,

4、也可以3个都省略,但间隔符“;”必须保留。例如:下列程序段把i=1提到for语句之前,省略了表达式1。 int i=1;s=0; for( ;i=100 ;i+) s=s+I;例如:下列两个程序段均为死循环,因为表达式2的值永远为真。(2)在for语句中,表达式1和表达式3都可以是一项或是多项,多于一项时,各项之间用“,”分隔,形成逗号表达式。 第5章 循环结构程序设计5.1 for 语句5.1.3 for语句的用法【例5-1】编程计算s=1+2+3+.+100,用for语句实现。 依照此程序,请读者自行完成下列编程题: 计算:s=1+3+5+.+99 计算:s=1+2+3+.+n第5章 循环

5、结构程序设计5.1 for 语句【例5-2】编程求n!。分析:n!=1*2*3*n。求阶乘时需要赋初值为1,不能是0,因为0乘任何数都是0如果n值较大,n!可能溢出,应将结果变量说明为float或double类型。第5章 循环结构程序设计5.1 for 语句【例5-3】把100200之间能被7整除的数输出。分析:能被7整除的数是:x%7=0#include int main() int i;for(i=100;i=200;i+) if(i%7=0) printf(%5d,i);printf(n);return 0;第5章 循环结构程序设计5.2 while语句5.2.1 while语句的格式w

6、hile语句的一般格式为: while(表达式) 语句;其中:(1)“表达式”是循环条件,可以为任何类型表达式,表达式必须用( )括起来;(2)“语句”又被称为循环体,为C语言中的任何一种语句(包括复合语句、if语句、case 语句)。第5章 循环结构程序设计5.2 while语句5.2.2 while语句的执行过程while语句的执行过程如下:(1)计算表达式的值,并判断其为“真”(非0)或“假”(0)。(2)若表达式的值为“真”,则执行循环体语句,然后返回到while语句重复第(1)步;若表达式的值为“假”,则结束循环,执行while语句的下一语句。while语句的执行过程如图5-2所示。

7、第5章 循环结构程序设计5.2 while语句说明:(1)while语句的特点是:先判断表达式,后执行循环体语句。如果第一次判断表达式的值为“假”,则循环体语句一次也不执行。(2)循环体语句可以是一条语句,也可以是复合语句。(3)循环结构由循环条件和循环体语句构成,在循环体中应该包含使循环趋向于结束的语句,否则会形成死循环。程序中应避免出现死循环。第5章 循环结构程序设计5.2 while语句5.2.3 while语句的用法【例5-5】输出一行数字0 1 2 3 4,要求每个数字中间空3格。#include int main()int i;i=0;while(i5) printf(%4d,i+

8、);printf(n);return 0; 第5章 循环结构程序设计5.2 while语句【例5-6】将输入的正文复制到输出,每次一个字符。分析:以 E0F 为结束标志的字符流称为一个正文,可以包含空白字符,例如空格 和换行字符n。键入 Ctrl+z则 getchar 函数返回文件结束字符 EOF。程序中:c=getchar(); while(c!=EOF) putchar(c); c=getchar(); 可简化为:while(c=getchar()!=EOF) putchar(c);第5章 循环结构程序设计5.2 while语句【例5-7】输入一行字符,分别统计出其中英文字母、空格、数字的

9、个数。第5章 循环结构程序设计5.3 do-while语句5.3.1 do-while语句的格式do-while语句的一般格式为:do 语句;while(表达式);其中:(1)语句部分可以是简单语句或复合语句;(2)表达式是循环条件,可以是任何类型表达式,表达式必须用()括起来。第5章 循环结构程序设计5.3 do-while语句5.3.2 do-while语句的执行过程do-while语句的执行过程如下:(1)执行循环体语句;(2)计算表达式的值,判断其为“真”(非0)或“假”(0)。若为“真”,则返回第1步,继续执行循环体;若为“假”,则结束循环,执行do-while语句的下一语句。do-

10、while语句的执行过程如图5-3所示。第5章 循环结构程序设计5.3 do-while语句说明:(1)do-while语句和while都能实现循环控制,while结构的程序通常都可以转换成do-while结构;(2)do-while语句与while语句的区别是:while语句先判断循环条件是否满足,如果满足再执行循环体,因此有可能一次也不执行循环体;而do-while语句是先执行一次循环体,然后再判断循环条件是否满足,因此,循环体至少要执行一次。因此,do-while语句通常用于那些至少要执行一次循环的情况。(3)do-while循环体中一定要有能使条件表达式值趋于0的操作,否则会出现死循环

11、。第5章 循环结构程序设计5.3 do-while语句5.3.3 do-while语句的用法【例5-9】计算: 直到最后一项的绝对值小于10-6为止。分析:这是一个求级数和问题,方法是依次计算每一项,并将该项与前面各项之和累加,如果某项绝对值小于10-6(反映精度),则求和结束,否则,重复上述过程。从式子的第二项起,每一项都是前一项乘以一个因子: (-x2)/(n*(n-1) (n=3,5,7,9,)如果用t表示每一项的值,则: t=t*(-x2)/(n*(n-1) (n=3,5,7,9,)第5章 循环结构程序设计5.3 do-while语句5.3.4 三种循环语句比较 当程序中需要用到循环语

12、句时,选择哪个语句和个人使用习惯有关,但一般来说有以下一些流行的风格。(1)for语句适合循环次数已知的情况。(2)while语句适合循环次数不确定,但已知循环条件。(3)do-while语句与while语句可以互通使用,但do-while更适合于至少循环一次的情况。第5章 循环结构程序设计5.4 break和continue语句5.4.1 break语句格式:break;功能:结束循环,执行循环语句的下一语句。break语句只能用于下面两种情况:(1)出现在循环语句的循环体中,当循环条件还未变为假时提前结束循环语句的执行(强行退出循环)。(2)出现在switch语句中,使程序中途退出swit

13、ch语句,即跳过break语句之后直到switch语句体结束的所有语句。除上述两处外,其他位置均不能出现break语句。第5章 循环结构程序设计5.4 break和continue语句【例5-10】编写程序,用循环计算圆面积,如果输入非数字半径则结束循环。第5章 循环结构程序设计5.4 break和continue语句5.4.2 continue语句格式:continue;功能:终止循环体的本次执行,控制转移到循环体的末尾,循环是否继续取决于循环条件是否满足。continue语句只能出现在循环语句的循环体中。例如:for(i=0;i10;i+) ch=getchar(); if(ch=n) c

14、ontinue; putchar(); 第5章 循环结构程序设计5.5 多重循环5.5.1 多重循环的格式多重循环的格式如下:while(表达式) for( 表达式1;表达式2;表达式3 ) 以上循环就构成了双重循环。三种循环语句(for、while、do-while)均可以互相嵌套形成多重循环结构。需要注意,内外层循环是完整的,相互之间不允许交叉。第5章 循环结构程序设计5.5 多重循环5.5.2 多重循环的执行过程下面以一个双重循环的程序为例,说明多重循环的执行过程。【例5-11】写出下列程序的运行结果。 本例中:i 循环称为外层循环,控制输出几行j 循环称为内层循环,控制一行输出几列第5

15、章 循环结构程序设计5.5 多重循环5.5.3 多重循环的使用【例5-12】编程计算:s=1!+3!+5!第5章 循环结构程序设计5.5 多重循环【例5-13】求Fibonacci数列:1,1,2,3,5,8, 的前40项。分析:Fibonacci的规律是:数列从第3项开始,每项都是其前两项之和。即: a=1;b=1; a=a+b;b=a+b; a=a+b;b=a+b; 第5章 循环结构程序设计5.5 多重循环【例5-14】打印下列图形: ABCDEF BCDEF CDEF DEF EF F第5章 循环结构程序设计5.6 循环结构程序设计举例【例5-15】任意10个数,求正数的个数及正数和。第5章 循环结构程序设计5.6 循环结构程序设计举例【例5-16】输出三位数中的“水仙花数”。 水仙花数是指一个3位数 ,其各位数字的 3次幂之和等于该数本身。例如,153是一个“水仙花数”,153=13+53+33分析:本题的关键是要分离出3位数的百位、十位和个位数字。第5章 循环结构程序设计5.6 循环结构程序设计举例【例5-17】将一张100元的人民币换成10元、5元和1元的零钞,一共有几种兑换方法。分析:因为50元最多只能有2张,20元最多有5张,10元最多有10张,也可以一张也没有,所以三个循环的范围分别是:02、05、010第5章 循环结构程序设计5.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论