ImageVerifierCode 换一换
格式:PPT , 页数:48 ,大小:1.32MB ,
资源ID:13985240      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13985240.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第4章 循环结构.ppt)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第4章 循环结构.ppt

1、Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,西南交通大学,*,Click to edit Master title style,第,4,章 循环结构,计算机系,内容提要,for,循环,1,while,循环,2,do-while,循环,3,goto,语句,4,循环嵌套,5,break,语句和,continue,语句,6,西南交通大学,4.1,引言,在不少实际问题中有许多具有规律性的重复操作,在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,取决于

2、循环的终止条件。,循环语句,是由,循环体,及,循环的终止条件,两部分组成的。,要使用循环语句时,必须要确定两个重要因素:,要重复执行哪些语句,重复到什么时候为止,。,西南交通大学,4.2 for,循环,1.,语法格式,for,(,循环变量赋初值;循环条件;循环变量值的改变,),循环体语句,2.,说 明,(,1,)执行顺序,先执行循环变量赋初值;,再判断循环条件;,如果条件成立执行循环体语句;,再返回上面执行循环变量值的改变;,后面,重复这个顺序,;,直到条件不成立,跳出整个,for,循环。,西南交通大学,4.2 for,循环,(,2,),for,循环中的,循环变量赋初值,可省略,但后面的,;,

3、不能,省略。,如果省略,则要求循环变量在,for,之前已经赋值。,另外,该处也可写与循环变量无关的其他表达式。,(,3,),for,循环中的,循环条件,可省略,但后面的,;,不能省。,如果省略,即无循环结束的条件,循环将无终止地执行下去。,如果省略,还可用,break,语句替代其功能(在,4.7,节详细说明)。,循环条件,可以是关系、逻辑、数值、字符表达式,只要值不为,0,就执行循环体。,西南交通大学,4.2 for,循环,(,4,),for,循环中的,循环变量值的改变,可省略。,如果省略,应在循环体语句中设置变量值的改变,否则循环可能无法结束。,另外,该处也可写与循环变量无关的其他表达式。,

4、5,),for,循环中的,都可省略,如:,for(;),表示无限循环。,(,6,),循环体语句,如果超过一条应加上花括号“,”,构成复合语句。,西南交通大学,for,循环 举例,【,例,4.1】,求和。,输入,10,个数,求这,10,个数的和,然后输出结果。,#include,int,main(void,),float,count,sum,x,;,printf,(,输入,10,个数:,);,for(count,=0,sum=0;count10;count+),scanf(%f,&x,);,sum+=x;,printf,(,结果为,%,gn,sum,);,return 0;,例,4.1.1,

5、西南交通大学,for,循环 举例,程序说明:,(,1,)该例中,,count=0,sum=0;,还可写为:,count=sum=0;,(,2,)该例中,可省略和,即将放在循环体之前进行,,将放在循环体中进行。,(,3,),循环结束时,,count,的值为,10,。,(,4,)循环体语句执行了,10,次。,注意,循环的执行顺序:,当,count=0,时,判断条件满足,第,1,次执行循环体语句;,当,count=9,时,判断条件满足,第,10,次执行循环体语句;,当,count=10,时,判断条件不满足,跳出循环。,例,4.1.2,西南交通大学,for,循环 举例,【,例,4.2】,求阶乘。编程求

6、10!,。,#include,int,main(void,),long,int,i,s,;,for(i,=1,s=1;i=10;i+),s*=i;,printf(10!=%ld,n,s,);,return 0;,例,4.2,西南交通大学,for,循环 举例,程序说明:,(,1,),跳出循环时,,i=11,,循环体共执行了,10,次。,(,2,)本题中,变量,i,也可从,2,开始。,(,3,)由于,10,!超过了“整型”范围,因此必须定义为“长整型”。,(,4,)循环体语句只有一句,s*=i;,因此可以不用加花括号。,西南交通大学,for,循环 举例,【,例,4.3】,求阶乘的和。编程求,1!

7、2!+10!,。,基本思路:,本题把例,4.1,和例,4.2,的要求融合在一起,用循环实现,累加,和,累乘,。,很多程序都是在累加和累乘的基础上实现的,请读者在初学时,多练习写相关的程序,以更好地理解程序设计中循环的解题思想。,如:求,100,200,所有的奇数和;,求,10,20,所有偶数的乘积。,例,4.3,西南交通大学,for,循环 举例,#include,int,main(void,),long,int,i,s,sum,;,for(i,=2,s=1,sum=1;i=10;i+),s*=i;,sum+=s;,printf(1!+2!+3!+10!=%ld,n,sum,);,return

8、 0;,西南交通大学,for,循环 举例,【,例,4.4】,输出所有水仙花数。,水仙花数为一个三位数,该三位数每位数字的立方和等于该数本身。编程求出所有三位水仙花数。,基本思路:,三位数即表示范围为,100,999,,这种,明确给出了数值范围的题目,用,for,循环来表示,结构上非常清晰,。,该题也可用,while,循环来实现,读者可以自己尝试写出程序,比较这两种循环在表达上的差异。,例,4.4,西南交通大学,for,循环 举例,#include,void main(),int,i,a,b,c,;,for(i,=100;i=999;i+),a=i%10;,/*a,为个位*,/,c=i/100;

9、/*c,为百位*,/,b=i%100/10;,/*b,为十位*,/,if(i,=a*a*,a+b,*b*,b+c,*c*c),printf(%d,i,);,西南交通大学,例,4.5,for,循环 举例,【,例,4.5】,输入任意字符,并将刚才输入的字符输出,如果想结束输入,则输入字母,t,。,#include,int,main(void,),char c;,for(;(c,=,getchar,()!=t;),printf(%c,c,);,printf(n,);,return 0;,该题,省略了,和,,只保留了,循环体语句只有一句,而,printf(n);,是循环外的语句,要在整个循环结束后才

10、会执行,函数,getchar(),获取从键盘上输入的字符,赋给变量,c,西南交通大学,for,循环 举例,每输入一个字符,按回车键,结果如下:,连续输入一串字符,最后一个输入,t,,然后按回车键,结果如下:,西南交通大学,4.3 while,循环,1.,语法格式,while(,循环条件,),循环体语句,2.,说 明,(,1,)执行顺序:,当循环条件“真”,即值为非,0,时,执行循环体语句;,当循环条件“假”,即值为,0,时,跳出循环。,西南交通大学,4.3 while,循环,(,2,)循环体语句如果有一个以上的语句,应以一对花括号“,”,括起来,成为,复合语句,。,(,3,)循环体语句中应该有

11、使循环趋于结束的语句,。,(,4,),while,循环,,首先就要判断条件,,如果条件一开始就为假,循环体语句可能一次都不执行。,西南交通大学,while,循环 举例,【,例,4.6】,求和(,与例,4.1,的,for,循环比较,)。,#include,int,main(void,),float count=0,sum=0,x;/*,变量赋初值*,/,printf,(,输入,10,个数:,);,while(count,10),scanf(%f,&x,);,count+,sum,+=x;,printf,(,结果为,%,gn,sum,);,return 0;,例,4.6,西南交通大学,while

12、循环 举例,程序说明:,将本例和例,4.1,比较,我们发现:,while,循环就是把,for,循环的,循环体变量赋初值,放到,while,之前;,把,for,循环的,循环体变量值的改变,放到,while,的循环体内;,条件判断,部分是一样的。,西南交通大学,while,循环 举例,实际编程中一般选择表达方式简洁明确的:,例,4.1-,例,4.4,用,for,循环更好;,例,4.5,和,4.8,用,while,循环更好。,问题,通过分析,我们看到,for,循环和,while,循环功能基本相同,那么在使用时该选用哪一种呢?,西南交通大学,例,4.7,while,循环 举例,【,例,4.7】,求阶

13、乘(,与例,4.2,的,for,循环比较,)。,#include,int,main(void,),long,int,i,s,;,i=1,s=1;,while(i,=10),s*=i;i+;,printf(10!=%ld,n,s,);,return 0;,注,意,while,中一定要有使程序趋于结束的语句。,本例中是,i+;,。,如果没有这一句,那么,i,永远都不会超过,10,,循环将无终止的执行下去,成为死循环。,西南交通大学,while,循环 举例,【,例,4.8】,使用公式,/41,1/3+1/5,1/7+,求,,直到最后一项的绝对值小于,10,-8,为止。,#include,#inclu

14、de,int,main(void,),double pi=0,t=1,n=1;,int,s=1;,while(fabs(t)=1E-8),pi+=t;,n+=2;,s=-s;,t=s/n;,printf(%.8fn,pi*4);,return 0;,例,4.8,西南交通大学,while,循环 举例,程序说明:,(,1,)最后一项的绝对值小于,10,-8,,即有效位数超过,7,位,已超出,float,型的精度范围,因此应定义为,double,型。,(,2,)该例中循环次数不明确,循环条件要通过计算才能得到,这种类型的程序,选择,while,循环实现要更清楚明确,读者可以尝试用,for,循环来实现

15、西南交通大学,4.4 do-,while循环,1.,语法格式,do,循环体语句,while(,循环条件,);,2.,说 明,(,1,)执行顺序:,先,无条件执行一次,do,后的循环体语句;,然后,判断循环条件,,若值为“真”,返回,do,处,执行循环体语句;,如此反复,直到循环条件为“假”,跳出循环。,西南交通大学,4.4 do-,while循环,(,2,)无论条件是否成立,,do-while,循环的循环体语句,至少执行一次,;,而,while,循环的循环体语句,可能一次都不执行,。,(,3,),do-while,循环中,,while,后的循环条件 后有一个分号,;,书写时不要遗漏了。,西

16、南交通大学,do-,while循环,举例,【,例,4.9】,求和(与例,4.6,的,while,循环比较)。,#include,int,main(void,),float count=0,sum=0,x;,printf,(,输入,10,个数:,);,do,scanf(%f,&x,);,count+,sum,+=x;,while(count,=0,else,if(c,=,a&c,=,A&c,=0,elseif(c=a,else other+;,西南交通大学,do-,while循环,举例,【,例,4.11】,任意输入两个数,求这两个数的最大公约数。,基本思路:,首先,随机输入两个数,m,、,n,(

17、默认,mn,);,其次,将,m,除以,n,的余数赋给,k,,如果,m,能被,n,整除,则,k,值为,0,,,n,即为这两个数的最大公约数;,否则,将,n,赋给,m,,,k,赋给,n,,重复以上过程,直到,k,值为,0,。,这种求最大公约数的算法称为,辗转相除法,。,例,4.11,西南交通大学,do-,while循环,举例,int,m,n,k,result,;,printf(Enter,two numbers:);,scanf(%d%d,&m,&n,);,if(m,0&n0)/*,限定,m,和,n,为正数*,/,do,k=,m%n,;,if(k,=0)result=n;,else m=n,n=k

18、while(k,0);,printf(The,greatest common,divistor,is:%dn,result,);,else,printf(Nonpositive,values not allowedn);,西南交通大学,4.5,goto,语句,1.,语法格式,goto,语句标号,;,2.,说 明,(,1,)执行顺序:无条件跳转到语句标号所在行。,(,2,)语句标号用标识符表示,命名规则和变量名相同。,(,3,)可与,if,语句一起构成循环。,(,4,)滥用,goto,语句会使程序流程无规律,一般限制使用,只在需要从多层循环的内层跳,到外层时才会用到该语句。,西南交通大学,g

19、oto,语句 举例,【,例,4.12】,求和。,#include,int,main(void,),int,i=1,sum=0;,loop:if(i,=10),sum=,sum+i;i,+;,goto,loop;,printf(%d,sum,);,return 0;,程序说明:,该程序相当,while,循环,当,i=10,时,执行花括号内的语句块。,例,4.12,西南交通大学,4.6,循环嵌套,一个循环体内又包含另一个完整的循环结构,称为,循环的嵌套,。,内嵌的循环中还可以嵌套循环,这就是多层循环。,西南交通大学,循环嵌套 举例,【例4.13】,百钱买百鸡。现有,100,元钱,要买,100,只鸡

20、公鸡,5,元一只,母鸡,3 元一只,小鸡,1,元钱,三,只,问如何买法,。,#include,int,main(void,),int,cock,hen,chick,;,for(cock,=0;cock=20;cock+),for(hen,=0;hen=33;hen+),chick=100cockhen;,if(cock,*15+hen*9+chick=300),printf(%d,%d,%dn,cock,hen,chick,);,return 0;,例,4.13,西南交通大学,循环嵌套 举例,程序说明:,(,1,),100,元钱全部买公鸡,最多买,20,只。因此循环中,cock,最大值取,2

21、0,;,取,100,也可以,但使循环多执行了很多次,程序效率低,。,(,2,)程序执行顺序:请老师上课讲解。,西南交通大学,4.7 break,语句和,continue,语句,break,语句,可以使程序流程跳出,switch,语句,,还可以从循环体内跳出循环体,提前结束循环。,continue,语句,可以提前结束本次循环。,西南交通大学,4.7.1 break,语句,1.,语法格式,break;,2.,说 明,(,1,)作用,1,:使流程跳出循环,终止整个循环。,(,2,)作用,2,:使流程跳出,switch,语句。,(,3,),不能用于循环语句和,switch,语句之外的其他任何语句,。,

22、西南交通大学,break,语句 举例,【,例,4.14】,判别所输入的一个大于,1,的正整数是否是素数。,判断素数的方法是,:,用这个数分别去除,2,到这个数的平方根,,只要有一个数能被整除,则表明此数不是素数,,如果没有一个数能被整除,则是素数。,#include,#include,int,main(void,),int,x,i,j,;,printf,(,输入一个大于,1,的正整数?,);,scanf(%d,&x,);,例,4.14,西南交通大学,break,语句 举例,j=(,int)sqrt(x,);,for(i,=2;ij),printf(%d,是素数!,n,x,);,else,pri

23、ntf(%d,不是素数!,n,x,);,return 0;,sqrt(),平方根函数,,见附录,当,ij,时,跳出,说明从,2,到,sqrt(x),之间,没有一个能被,x,整除,这种情况判断出,x,是素数,当,x%i=0,时,跳出,说明,x,有因子,不可能是素数,这时,i,还未取到终止值,j,如果不用,break,语句,本程序可将,for,语句改成:,for(i=2,j=(int)sqrt(x);ij,时跳出,说明从,2,到,sqrt(x,),之间,没有一个能被,x,整除,这种情况判断出,x,是素数。,当,x%i,=0,时跳出,说明,x,有因子,不可能是素数,这时,i,还未取到终止值,j,。,

24、如果不用,break,语句,本程序可将,for,语句改成:,for(i,=2,j=(,int)sqrt(x);i,=,ji,+);,西南交通大学,break,语句 举例,【,例,4.15】,判断,101,200,有多少个素数,并输出所有素数。并且每输出,5,个数字换一行。,int,x,i,j,count,=0;,for(x,=101;x=200;x+),j=(,int)sqrt(x,);,for(i,=2;ij),count+;,/*count,用来记录当前素数的个数*,/,printf(%d,x,);,if(count%5=0),printf(n,);,外层的,for,控制,x,的区间为,1

25、01,200,内层的,for,用来判断当前的,x,是否为素数,例,4.15,西南交通大学,4.7.2 continue,语句,1.,语法格式,continue;,2.,要 点,(,1,)作用:结束本次循环,而不是终止整个循环。,(,2,)与,break,语句的区别:,break,语句不仅仅结束本次循环,而且还终止整个循环。,西南交通大学,continue,语句 举例,【,例,4.16】,编程求,10,50,范围内能被,3,整除的所有整数。,#include,int,main(void,),int,x;,for(x,=10;x=50;x+),if(x%3)continue;,printf(%3d

26、x);,printf(n,);,return 0;,本题也可不用,continue,语句,直接将,if,语句改为:,if(x%3=0)printf(%3d,x);,例,4.16,西南交通大学,小 结,循,环,语,句,while(,条件,),循环体语句,先判断条件,do,循环体语句,while(,条件,);,后判断条件;,注意该语句条件后有一个分号,for(,表达式,1;,表达式,2;,表达式,3),循环体语句,goto,语句标号,;,无条件跳转,少用,其,他,break;,只能用于循环语句和,switch,语句,continue;,只能用于循环语句,西南交通大学,Thank You!,计算机系,

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服