第5章循环结构

上传人:无*** 文档编号:244333169 上传时间:2024-10-03 格式:PPT 页数:41 大小:508.50KB
返回 下载 相关 举报
第5章循环结构_第1页
第1页 / 共41页
第5章循环结构_第2页
第2页 / 共41页
第5章循环结构_第3页
第3页 / 共41页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C,的基本结构,程序设计,程序的基本结构:,复习提问:,顺序结构,选择结构,循环结构,C,的基本结构,程序设计,程序的基本结构:,复习提问:,顺序结构,选择结构,循环结构,顺序结构的特点:,每一条语句按顺序执行;,每一条语句只执行一遍,不重复执行;,也没有语句不执行。,命令序列,2,命令序列,1,命令序列,START,END,复习提问:,C,的基本结构,程序设计,复习提问:,分支结构的特点:,每一条执行了的语句都只执行一遍。,不重复执行;,但有语句不执行。,条件,命令序列,If,语句后面的下一条语句,N,Y,命令序列,条件,命令序列,2,If,语句后面的下一条语句,命令序列,1,Y,N,C,的基本结构,程序设计,else,输入一个百分制成绩,输出相应的成绩级别,,当输入的分数不在,0100,之间时,给出“出错提示”。,#include,void main(),float score;,char grade;,printf,(,请输入学生成绩,:);,scanf(%f,&score,);,if(score100|score100|score0),printf(n,输入有误,请重输,);,scanf(%f,&score,);,问题:,如何计算,1100,之和,?,sum=,sum+i,i=i+1,i=100,sum=0,i=1,开始,输出,sum,结束,YES,NO,第,5,章 循环结构,本章要点,while,语句,do_while,语句,for,语句,例,5-1,:,编写程序,求几何级数之和:,分析:,该数学表达式为,1,2,3,100,。,设:,sum,为级数的和(初值为零);,i,为循环变量;,将,i,从,1,按步长为,1,增加到,100,,循环计算:,sum=,sum+i,;,求得该级数的和。,5.1 while,语句和,do-while,语句,5.2.1 while,语句,#include,main(),int,i,sum,;,sum=0;,i=1;,while(i,=100),sum=,sum+i,;,i+;,printf(%d,sum,);,例,5-1,用,while,循环求,while,(,),循环语句;,循环变量表达式;,(,1,)循环体如果包含一个以上的语句,应用,括起来,(,2,)在循环体中应有使循环趋向结束的语句,5.2.1 while,语句,#include,main(),int,i,sum,;,sum=0;,i=1;,while(i,100),sum=,sum+i,;,i+;,printf(%d,sum,);,例,5-1,用,while,循环求,问题:,把,while,语句中的条件改为,i100,情况会怎样?,练习:,编写程序,从键盘输入一个正整数,n,,求,n!,。,分析:,n!=n*(n1)*(n2)*2*1,(约定:,n0,,,0!=1,),#include,main(),int,i,n,;,double s;,scanf(“%d”,&n,);,if(n,=0),s=1;,i=1;,while(),s=s*i;,printf(“%d,!=%,fn”,n,s,);,while(i,=100),sum=,sum+i,;,i+;,i=n,i+;,5.2.2 do while,语句,#include,main(),int,i,sum,;,sum=0;,i=1;,do,sum=,sum+i,;,i+;,while(i,=100),printf(%d,sum,);,例,5-2,用,do while,循环求,do,while();,练习,;编写程序:从键盘输入很多个字符,当遇到回车时结束,输出字符的个数。,#include,main(),char,ch,;,int,count=0;,ch,=,getchar,();,while(,ch,!=n),count=count+1;,ch,=,getchar,();,printf(count,=%,dn,count,);,提示:,分别用,while,和,do while,完成!,#include,main(),char,ch,;,int,count=0;,do,ch,=,getchar,();,count=count+1;,while(ch,!=n);,printf(count,=%,dn,count,);,do-while,同,while,语句的重要区别,expr,循环体,假(0),真(非0),while,循环控制在循环体之前,只有当,while,后的表达式为非,0,时,才可能执行循环体,循环体有可能一次都不执行。,do,循环体,expr,假(0),真(非0),while,总是先执行一次循环体,然后再求表达式的值,因此,无论表达式的值是,0,还是非,0,,循环体至少执行一次。,源程序:,#include,void main(),int,sum=0,i;,scanf(“%d”,&i,);,while(,i=,10,),sum=sum+i;,i=i+1;,printf(“sum,=%dn”,sum);,例:,while,和,do while,循环比较,源程序:,#include,void main(),int,sum=0,i;,scanf(“%d”,&i,);,do,sum=sum+i;,i=i+1;,while(,i=,10,),printf(“sum,=%dn”,sum);,练习,1,:观察以下程序运行结果并分析。,main(),int,n=0;,while(n3),printf(n,is%dn,n);,n+;,printf(Thats,all this,prgram,doesn);,在使用,while,时,只有位于判断条件之后的单个语句(简单语句或复合语句)才是循环的部分。,练习,2,:观察以下程序运行结果并分析。,main(),int,n=0;,while(n+3);,printf(n,is%dn,n);,printf(Thats,all this program does.n);,循环在判断条件后的第一个简单或复合语句处就结束了。,5.3 for,语句,#include,main(),int,i,sum,;,sum=0;,for(i=1;i=100;i+),sum=,sum+i,;,printf(%d,sum,);,例 用,for,循环求,for(,;,;,),循环体语句;,练习:编写程序,从键盘输入两个不等于零的正整数,a,、,b,(,a,b,),求它们之间的几何级数的和,数学表达式为:,#include,main(),int,i,sum,a,b,;,scanf(“%d%d”,&a,&b,);,sum=0;,sum=,sum+i,;,printf(%d,sum,);,for(i,=a;i=,b;i,+),for(i,=1;i=100;i+),练习:用,for,语句,编写程序,从键盘输入一个正整数,n,,求,n!,。,分析:,n!=n*(n1)*(n2)*2*1,(约定:,n0,,,0!=1,),#include,main(),int,i,n,s,;,scanf(“%d”,&n,);,s=;,for(),s=s*i;,printf(%d,sum,);,for(i,=1;i=,n;i,+),for(i,=1;i=100;i+),1,for,语句的几点说明,for,语句中,expr1,expr2,expr3,类型任意,都可省略,但分号;不可省,无限循环:,for(;),for,语句可以转换成,while,结构语句,i=1;,for(;i=100;i+)sum=sum+i;,for(i=1;i+)sum=sum+i;,for(sum=0,i=1;i=100;),sum=sum+i;,i+;,i=1;,for(;i=100;),sum=sum+i;,i+;,输入整数,n,在屏幕上输出,n,个“,*”,void main(),int,i,n,;,scanf(“%d”,&n,);,for(i,=1;i=,n;i,+),printf,(*);,printf(n,);,习题,main(),int,y=10;,while(y,-);,printf(y,=%,dn,y,);,程序运行后的输出结果是,A,),y=0,B)y,=-1,C)y=1,D)while,构成无限循环,B,有以下程序段,int,n,t,=1,s=0;,scanf(“%d”,&n,);,do s=,s+t,;t=t-2;while(t!=n);,为使此程序段不陷入死循环,从键盘输入的数据应该是()。,A,)任意正奇数,B,)任意负偶数,C,)任意正偶数,D,)任意负奇数,D,习题,for,循环程序举例,例,5.5,求,Fibonacci,数列前,40,个数。这个数列的特点如下:,F1=1,(n=1),Fn=Fn-1+Fn-2,(n,3),F2=1,(n=2),程序:,main(),long,int,f1,f2;,int,i;,f1=1;f2=1;,for(i,=1;i0&n0),for(i=1;i=m;i+),for(j=1;j=n;j+),printf(*);,printf(n);,else,printf(Sorry!You enter a wrong numbern);,5.5 break,语句和,continue,语句,break,语句,功能:在循环语句和,switch,语句中,终止并跳出循环体或开关体,。,说明:,break,只能,终止并跳出,最近一层,的结构,break,不能用于循环语句和,switch,语句之外的任何其它语句之中,。,expr,break;,假(0),真(非0),while,do,break;,.,expr,假(0),真(非0),while,expr2,break;,.,假(0),真(非0),for,expr1,expr3,switch,expr,语句组,1,break;,语句组,2,break;,语句组,n,break;,语句组,break;,.,const 1,const 2,const n,default,case,break,举例:输出,半径分别为,1,到,10,时,圆,的,面积,main(),int,r;,float,area,pi,=3.14159;,for(r=1;r=10;r+),area=pi*r*r;,printf(r,=%d,area=%.2fn,r,area);,break,举例:输出圆,的,面积,,面积大于,100,时结束,main(),int,r;,float,area,pi,=3.14159;,for(r=1;r100),break;,printf(r,=%d,area=%.2fn,r,area);,用,while,实现例,5-11,main(),int,r=1;,float,area,pi,=3.14159;,area=pi*r*r;,while(area100),printf(r,=%,d,area,=%.2fn,r,area);,r=r+1;,area=pi*r*r;,continue,语句,功能:结束本次循环,跳过,循环体中,尚未执行的语句,进行下一次是否执行循环体的判断,仅用于循环语句中,expr,continue;,假(0),真(非0),while,真(非0),do,continue;,.,expr,假(0),while,expr2,continue;,.,假(0),真(非0),for,expr1,expr3,continue,举例:,main(),int,n;,for(n=1;n=100;n+),if(n%7=0)continue;,printf(“%d”,n,);,输出,100,以内不能被,7,整除的数。,问:下面程序的功能是?,break,和,continue,的比较,#include,void main(),int,x;,for(x,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!