- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 一遍又一遍——循环结构 所谓“循环”,就是对某块代码段重复多次地执行,循环结构是C语言程序书写中常用的一种重要控制结构,C语言提供了3种循环结构,分别是while结构、do while结构和for结构,本章将对其展开讨论。 9.1 构造循环 循环结构有两大要素:循环条件和循环体,当满足某个条件时,重复执行某些动作,直到该条件不再满足,这个表述很好地体现了循环条件和循环体的关系。构造循环时,首先要明白要做什么,即“循环体是什么”,这是和程序的目的相关的,知道要干什么了还不够,还要明白什么时候开始做,什么时候停,如果没有合理设定循环条件,很容易造成程序死循环,甚至是资源耗尽导致电脑死机。 9.1.1 循环的条件 举个最简单的例子,要求计算从1加到100有多大,因为本章讨论的是循环,所以我们撇开高斯的简便方法((1+100)*50=5050),程序如何来编的,采用如下形式显然是不现实的: sum=1+2+3+4+……+100; 写完这个式子就够费劲的,还好只有100个,要是有成千上万个,活活要累个半死,在这种应用背景下,需要使用循环结构,只要一小段代码,如: 9.1.2 当型循环和直到型循环 循环结构分为两类:当型循环和直到型循环,从字面的“当”和“直到”体会两者的差别,当型循环指的是先判断循环条件,如果条件为真(非0),执行循环体,否则,跳过该循环结构,而直到型循环是先执行循环体,再判断循环条件,如果条件为真(非0),进入下一次循环,否则结束循环,两种循环的流程示意如所示。 9.2 简洁循环语句——while和do while结构 前面的示例中已经用到了while结构,其基本结构形式为: while (表达式) { 循环结构体 } 首先计算表达式的值,当表达式为真(非0)时,重复执行循环体,直到表达式变为假(0),跳出while结构向下执行。 do while结构与while结构略有不同,其基本形式为: do { 循环结构体 } while( 表达式 ); /*不要忘记末尾的分号*/ 9.2.1 语法规则 在while/do while结构中,表达式既可以是逻辑表达式或关系表达式,也可以是普通表达式,甚至可以是常量或变量,判断的关键在于其值是否为0。下面来看一下表达式仅仅是个变量的示例,见: 9.2.2 代码块 while结构和do while结构中的循环体是“块语句”,要么是单条语句,要么是用花括号包裹起来的多条语句,这和第8章if结构中的情况有些类似。 从字面上看,do while结构中,do和while似乎已经把循环限定住了,再加花括号似乎显得多余,但C语言的规则规定此处必须是“块语句”,如果是多条语句,却没有用花括号包裹起来,编译器会提示出错。 如果因为不小心,在while结构的“while( 表达式 )”后敲上了一个分号,将会造成死循环,也就是说,表达式的值得不到修改,程序一直重复、停留在该循环处不会跳出,此时: while( 表达式 ); /*此处误敲了一个分号*/ { …… /*循环体*/ } 9.3 最常用的循环语句——for结构 阅读代码时可以发现,for结构是应用最多的一种循环控制结构,这大抵是因为for结构提供的控制功能更为完善,而且,相比while结构,for结构写出的代码也更为简洁,可读性也稍好。 9.3.1 基本形式 for结构的一般结构为: for (初始化表达式; 判断表达式; 修正表达式) { 循环体 } 用while结构表示同样的结构,如下: 初始化表达式; while( 判断表达式 ) { 循环体 修正表达式; } 9.3.2 表达式省略 for循环结构中的初始化表达式,判断表达式和修正表达式都是可选项,也就是说,可以省略,但每个表达式后的分号不能省略,最极端的情况是:3个表达式都省略,形式如下: for(; ; ) /*两个分号不能省略*/ { …… /*循环体*/ } 这相当于; while( 1 ) { …… /*循环体*/ } 9.3.3 循环终止和步长 除非你有意为之,否则,应妥善设计循环终止条件,避免死循环。从代码编写的角度看,使“循环控制条件一步步向终止方向靠近”是关键,比如: for(int i=1; i=100; i++) 循环终止条件是i100,初始条件是i=1,因此,i++将步长设定为1,每次增加1,每执行一次循环体,就朝终止的方向又前进了一步,试想,如果将此处的i++改成i--,无论执行多少次,循环终止条件都不会达到,循环也不会终止。 for结构中的3个表达式,尤其是修正表达式提醒了开发人员对循环变量进行修正,而在while和do while结构中没有这种机制,因此,需要在这两种结构的循环体中对循环变量进行修改。 注意:
您可能关注的文档
最近下载
- 石家庄铁道大学《线性代数》20212022学年第一学期期末考试卷.pdf VIP
- 不同因子对酸茶品质及高含量ga形成的影响茶学专业论文.docx VIP
- 2024年秋国开《行政复议法》形考任务1-4(答案).docx
- 第1讲物质的分类及转化.docx VIP
- 2021-2022学年四川省成都市高二(上)期末化学试卷(附答案详解).docx VIP
- 2024-2025学年小学数学北师大版(2024)一年级上册教学设计合集.docx
- 产品技术要求(软件产品).pdf VIP
- 新人教版化学选修5高中《卤代烃》教案二.doc VIP
- 新版高血压常用药物治疗方案介绍.ppt VIP
- 2024-2025新人教版初中数学七年级上册(全册)优秀ppt课件.pptx VIP
文档评论(0)