收藏 分销(赏)

C语言程序设计第5章--循环结构程序设计.ppt

上传人:丰**** 文档编号:8914667 上传时间:2025-03-07 格式:PPT 页数:35 大小:1.53MB 下载积分:12 金币
下载 相关 举报
C语言程序设计第5章--循环结构程序设计.ppt_第1页
第1页 / 共35页
C语言程序设计第5章--循环结构程序设计.ppt_第2页
第2页 / 共35页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,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,语句,本节主要介绍循环结构的概念以及循环结构程序能解决的问题。,循环结构的概念,定义,:,循环,是指在所设计的程序中,有条件地反复执行某一段程序的现象。,循环结构,是结构化程序设计中一种很重要的结构,又称为重复结构。,循环的特点,:在给定条件成立时,反复执行某个程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。,循环结构的分类,:当型循环结构和直到型循环结构。,循环条件和循环体设置不好,很可能得不到预期的结果,甚至出现,死循环,。,第,5,章 循环结构程序设计,5.1 for,语句,5.1.1,for,语句的格式,for,语句的一般,格式,为:,for(,表达式;表达式;表达式,),语句;,其中:,表达式,1:,为循环变量赋初值,表达式,2:,为循环继续的条件,表达式,3:,为循环变量的增值,语句,:,又被称为循环体,它是当表达式,2,为真(非,0,)时要重复执行的语句,它可以由一条语句或复合语句组成。,第,5,章 循环结构程序设计,5.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,个,也可以,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.1 for,语句,【例,5-2,】,编程求,n!,。,分析:,n!=1*2*3*n,。,求阶乘时需要赋初值为,1,,不能是,0,,因为,0,乘任何数都是,0,如果,n,值较大,,n!,可能溢出,应将结果变量说明为,float,或,double,类型。,第,5,章 循环结构程序设计,5.1 for,语句,【例,5-3,】,把,100,200,之间能被,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,语句的格式,while,语句的一般,格式,为:,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,所示,。,第,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+);,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,】,输入一行字符,分别统计出其中英文字母、空格、数字的个数。,第,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-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,的操作,否则会出现死循环。,第,5,章 循环结构程序设计,5.3 do-while,语句,5.3.3,do-while,语句的用法,【例,5-9,】,计算:,直到最后一项的绝对值小于,10,-6,为止。,分析:,这是一个求级数和问题,方法是依次计算每一项,并将该项与前面各项之和累加,如果某项绝对值小于,10,-6,(反映精度),则求和结束,否则,重复上述过程。,从式子的第二项起,每一项都是前一项乘以一个因子:,(-x,2,)/(n*(n-1),(,n=3,5,7,9,),如果用,t,表示每一项的值,则:,t=t*(-x,2,)/(n*(n-1),(,n=3,5,7,9,),第,5,章 循环结构程序设计,5.3 do-while,语句,5.3.4,三种循环语句比较,当程序中需要用到循环语句时,选择哪个语句和个人使用习惯有关,但一般来说有以下一些流行的风格。,(,1,),for,语句适合循环次数已知的情况。,(,2,),while,语句适合循环次数不确定,但已知循环条件。,(,3,),do-while,语句与,while,语句可以互通使用,但,do-while,更适合于至少循环一次的情况。,第,5,章 循环结构程序设计,5.4,break,和,continue,语句,5.4.1 break,语句,格式:,break,;,功能:,结束循环,执行循环语句的下一语句。,break,语句只能用于下面两种情况:,(,1,)出现在循环语句的循环体中,当循环条件还未变为假时提前结束循环语句的执行(强行退出循环)。,(,2,)出现在,switch,语句中,使程序中途退出,switch,语句,即跳过,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),continue;,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,章 循环结构程序设计,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=1,3,+5,3,+3,3,分析:,本题的关键是要分离出,3,位数的百位、十位和个位数字。,第,5,章 循环结构程序设计,5.6,循环结构程序设计举例,【例,5-17,】,将一张,100,元的人民币换成,10,元、,5,元和,1,元的零钞,一共有几种兑换方法。,分析:,因为,50,元最多只能有,2,张,,20,元最多有,5,张,,10,元最多有,10,张,也可以一张也没有,所以三个循环的范围分别是:,0,2,、,0,5,、,0,10,第,5,章 循环结构程序设计,5.6,循环结构程序设计举例,【例,5-18,】,百马百担问题:有,100,匹马,驮,100,担货,大马驮,3,担,中马驮,2,担,两匹小马驮,1,担,问有大、中、小马各多少。,分析:,符合本题输出的条件:,马的总数等于,100,;,货的总数等于,100,;,小马数必须是偶数。,第,5,章 循环结构程序设计,5.6,循环结构程序设计举例,【例,5-19,】,打印下列图形:,*,*,*,*,分析:,本题需要用到双重循环,外层循环(,i,循环)控制打印,4,行,内层循环(,j,循环)控制打印列,每列,2*i-1,个。,k,循环用于打印每行的前导空格。,第,5,章 循环结构程序设计,本章结束!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服