第四讲 循环结构(1.5次)

上传人:沈*** 文档编号:244042755 上传时间:2024-10-02 格式:PPT 页数:35 大小:511.50KB
返回 下载 相关 举报
第四讲 循环结构(1.5次)_第1页
第1页 / 共35页
第四讲 循环结构(1.5次)_第2页
第2页 / 共35页
第四讲 循环结构(1.5次)_第3页
第3页 / 共35页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,循环结构程序设计,反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。,把这种重复过程,称为,循环过程,;,3.3,循环结构程序设计,while,语句,do-while,语句,for,语句,求华氏温度 100,F,对应的摄氏温度。,摄氏温度,C=(5/9)(F-32),#,include,int,main(void,),int,celsius,fahr,;,fahr,=100;,celsius,=5*(,fahr,-32)/9;,printf(fahr,=,%d,celsius,=,%,d,n,fahr,celsius,);,return 0;,输入,2,个整数,lower,和,upper,,输出一张华氏摄氏温度转换表,华氏温度的取值范围是,lower,upper,,每次增加,1F,。,fahr,celsius,30 -1.1,31 -0.6,32 0.0,33 0.6,34 1.1,35 1.7,程序解析,-,温度转换表,void main(),int,fahr,lower,upper;,double,celsius,;,printf(Enter,lower:);,scanf(%d,printf(Enter,upper:);,scanf(%d,printf(fahr,celsiusn,);,/,温度重复转换,:,华氏温度从,lower,开始,到,upper,结束,每次增加,1F,for(,fahr,=lower;,fahr,=upper;,fahr,+),celsius,=(5.0/9.0)*(,fahr,-32);,printf(%d,%6.1fn,fahr,celsius,);,Enter lower:,30,Enter upper:,35,fahr,celsius,30 -1.1,31 -0.6,32 0.0,33 0.6,34 1.1,35 1.7,for,语句的流程,for(,fahr,=lower;,fahr,=upper;,fahr,+),celsius,=(5.0/9.0)*(,fahr,-32);,printf(%d,%6.1fn,fahr,celsius,);,fahr,=fahr+2,输出?,Enter lower:,30,Enter upper:,35,fahr,celsius,30 -1.1,31 -0.6,32 0.0,33 0.6,34 1.1,35 1.7,for(,fahr,=lower;,fahr,=upper;,fahr,+),celsius,=(5.0/9.0)*(,fahr,-32.0);,printf(%d,%6.1fn,fahr,celsius,);,表达式,1,:,给循环变量赋初值,,指定循环的起点。,fahr,=lower,表达式,2,:,给出循环的条件,决定循环的继续或结束。,fahr,=upper,表达式,3,:,设置循环的步长,改变循环变量的值,从而可改变表达式,2,的真假性。,fahr,+,语句:,被反复执行的语句,一条语句。,for,语句的说明,一般形式:,for,(,表达式,1;,表达式,2;,表达式,3),语句,求解表达式,1,表达式,2,语句,求解表达式,3,for,语句的,下一语句,假,真,3.3.1,三种循环结构的流程表示及执行过程,for,语句,for,语句最常用的形式,:,for(,初值,;,控制条件,;,增量,),语句;,3,个表达式、循环体语句,书写顺序和执行顺序不同,表达式,1,只执行一次,求,1+2+100,抽取具有共性的算式:,sum=sum+i,sum,初值为,0,,该算式重复,100,次,,i,从,1,变到,100,设,i,为循环变量,则:,指定循环起点的表达式,1,:,i=1,给出循环条件的表达式,2,:,i=100,设置循环步长的表达式,3,:,i+,循环体语句:,sum=sum+i;,for(i=1;i=100;i+),sum=sum+i;,指定次数的循环程序设计,for(,fahr,=lower;,fahr,=upper;,fahr,+),celsius,=(5.0/9.0)*(,fahr,-32.0);,printf(%d,%6.1fn,fahr,celsius,);,for(,fahr,=lower;,fahr,=upper;,fahr,=,fahr,+1),celsius,=(5.0/9.0)*(,fahr,-32.0);,printf(%d,%6.1fn,fahr,celsius,);,复合语句,和空语句,;,for(,fahr,=lower;,fahr,=upper;,fahr,=,fahr,+1),;,celsius,=(5.0/9.0)*(,fahr,-32.0);,printf(%d,%6.1fn,fahr,celsius,);,!不要在,for,语句中随意加分号,求,1+2+1001+2+3+n 1+1/2+1/3+1/1001+1/2+1/3+1/n 1+1/3+1/5+,的前,n,项和,1-1/3+1/5-,的前,n,项和,n!,x,n,3.3.1,三种循环结构的流程表示及执行过程,while,语句,一般形式:,While,(,表达式,),语句,功能:实现,当,循环,,先判断,后执行,。表达式为真时,(,非,0,值,),,执行,while,语句的内嵌语句。,语句可以是简单的,也可以是复合的,;,循环体中应有使循环趋向于结束的语句。,while(0).,由于循环的条件表达式恒等于,0,,循环体永远也不会执行,是编程者的错误。,while(1).,由于循环的条件表达式恒等于,1,,所以不可能通过循环控制条件来结束循环体的执行,称为,“,死循环,”,。,表达式,语句,0,非,0,例,求,1+2+3+,.+100,。,main(),int,i=1,sum=0;,while(i=100),sum=,sum+i,;,i+;,printf(%d,sum,);,不能写成,if(i=100),如果有一个以上的语句循环,则必须用,构成复合语句。要有修改循环变量的语句。,sum=0,i=1,输出,sum,i=100,sum=,sum+i,i=i+1,0,非,0,3.3.1,三种循环结构的流程表示及执行过程,while,语句,一般形式:,do,循环语句,while,(,表达式,);,功能:实现,直到型,循环结构。,说明:,do while,中的循环体至少执行一次,而,while,语句中的循环语句可能一次都不执行。,当,while,后面的表达式的第一次的值为,真,时,两种循环得到的结果相同。否则,二者结果不相同。,表达式,语句,非,0,(真),0,(假),3.3.1,三种循环结构的流程表示及执行过程,do-while,语句,例,求,1+2+3+,.+100,。,main(),int,i,sum,=0;,i=1;,do,sum=,sum+i,;i+;,while(i=100);,printf(%d,sum,);,3.3.1,三种循环结构的流程表示及执行过程,do-while,语句,嵌套的概念:一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。,循环嵌套的,6,种形式:,while(),while(),do,do,while();,while();,for(;),for(;),3.3.,循环的嵌套,循环的嵌套,结构,while(),do,while();,for(;),while(),do,for(;),while();,for(i=1;i=100;i+),for(j=1;j=i;j+),printf,(%d%,dn,i,j);,外循环变量每循环一次,内循环就要从头到尾执行一遍,程序举例,嵌套循环求,1!+2!+.+10!,for(n=1;n 1,时,t=1;,for(i=1;i=n;i+),t=t*i;,for(n,=1;n=10;n+),t=1;,/*t,存放阶乘,每次求阶乘都从,1,开始 *,/,for(i=1;i=n;i+),t=t*i;,/*,内层循环算出,t=i!*/,sum=,sum+t,;,考虑是否可以把,int,t=1,放到外循环以外,t=1,;,for(n,=1;n=10;n+),for(i=1;i=n;i+),t=t*i;,sum=,sum,+t;,求,1!+1!*2!+,+1!*2!*,*100!,例,打印九九表。,3.3.2,循环的嵌套,11=1,12=2,22=4,19=9,29=18,39=27,99=81,.,.,(1=i=9),(1=j=i),分析:,分行与列考虑,共,9,行,9,列,,i,控制行数,,j,控制列数。,行变量,i,外循环控制变量,:,取值范围,:1,9,列变量,j,内循环控制变量,:,取值范围,:1,i,输出格式设置,:,12,2:,printf(“%d,*%d=%-,d”,j,i,i,*j);,换行控制,:,printf(”n,”);,循环的嵌套,i9,i=1,j=1,ji,输出,j*i,j+,输出换行,开始,结束,分析:,分行与列考虑,共,9,行,9,列,,i,控制行数,,j,控制列数。,行变量,i,外循环控制变量,:,取值范围,:1,9,列变量,j,内循环控制变量,:,取值范围,:1,i,输出格式设置,:,12,2:,printf(“%d,*%d=,%-,d”,j,i,i,*j);,换行控制,:,printf(”n,”);,for(i=1;i10;i+),for(j,=1;ji;j+),result=i*j;,printf(“%d,*%d=%-3d”,j,i,result);,printf(“n,”);,例,打印图形,。,循环的嵌套,分析,:,行的控制,i:1,8,*,的个数,与当前行的关系,j=2*i-1,*,前面的空格,k,与行的关系,:,开始时,第一行有,7,个空格,每多一行,少一个空格,k=8-i,*,*,*,*,*,*,*,*,for,(i,=1;i,=8,;i+,),for(k=1,;,k=8-,i;,k+)输出空格,for(j=1,;,j=2*i-1,;j+,)输出*,例,打印图形。,循环的嵌套,i=1,i=8,k=1,k=8-i,打印空格,k=k+1,j=1,j=2*(i-1)+1,打印*,j=j+1,换行,i=i+1,for,(i,=1;i,=8,;i+,),for(k=1,;,k=8-,i;,k+)输出空格,for(j=1,;,j=2*i-1,;j+,)输出*,#include,stdio.h,main(),int,i,j,k,;,for(i=1;i=8;i+),for(k=1;k=(8-i);k+),printf,();,for(j=1;j=1e-6),pi=,pi+t,;n=n+2;,s=-s;t=,s/n,;,pi=,pi,*4;,printf(pi,=%10.6fn,pi);,t=1,pi=0,n=1,s=1,当,|t|,10,-6,pi=pi+t,n=n+2,s=-s;,t=s/n,pi=pi*4,输出,pi,break,语句用来从循环体里退出,中止循环,格式,break,;,break,语句的功能,1.,在,switch,语句中结束,case,子句,使控制转到,switch,语句之外。,2.,在循环语句的循环体中使用,结束循环过程,使控制转移到整个循环语句之外的下一条语句处,continue,用来跳过本次循环,继续下一次循环,3.3.4,循环,辅助控制,break,语句和,continue,语句,例,判断,m,是否是素数。,3.3.4,循环,辅助控制,break,语句和,continue,语句,m-1,main(),int,m,,,i,,,k;,scanf(%d,,,k=m-1;,for(i=2;i=k+1),printf(%d,is a Pri
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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