第章循环结构程序设计.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章循环结构程序设计

第5章 循环结构程序设计 5.1 为什么需要循环控制 循环就是重复,编程经常遇到重复的计算:如输入50个学生的成绩、计算50个学生的平均成绩。这些计算的过程、方法基本一致,不同的是数据。使用循环解决。 在C语言中,可以有4种循环:if-goto构成循环、while、do-while、for循环; 5.2 用if-goto构成循环 一般格式: 语句1 标号L:语句2 语句3…… if(条件) 则goto标号L继续执行 其它语句 如,要计算1+2+……+100的和。 第一种形式: int i,sum; sum=0; i=1; L: sum+=i; i++; if(i=100) goto L; printf(1+2+3+...+100=%d \n,sum); 其程序流程图如右图所示: 第二种形式: int i,sum; sum=0; i=1; L1: if(i100) goto L2; sum+=i; i++; goto L1; L2: printf(1+2+3+...+100=%d \n,sum); 该流程图留给大家回去画。 使用if-goto语句,计算 的和。 需要正确处理两个细节: (1)整数除以整数的问题:1/2得不到0.5,而只能得到0; (2)符号的问题:可设置一个变量sign,初始值为1,然后在循环中每次让它去乘以-1,这样,sign就会在1和-1之间变化,这正是我们要的。 编程如下: int i; double sum=0.0; int sign=1; i=1; L1: sum+=sign*1.0/i; //sign代表符号1和-1,1.0/i后得到double i++; sign*=-1; //sign在1和-1之间变化 if(i=100) goto L1; printf(1/1-1/2+1/3-1/4+……-1/100=%f \n,sum); goto语句的弊端:如果程序中大量出现goto语句,则程序会变得很难读懂,转来转去,转得程序员头昏。 goto的利:效率特别地高,如一个很深的循环: while(...) { while(...) { for(...) { if(条件) 则退出所有循环goto L1 } } } L1:..... 所以,要限制使用,除非必要时,不去使用goto,特别是,考试中一般不允许用goto。 5.3 用while语句构成循环 while语句的一般格式: while( 条件 ) { //循环体 } 其运行的过程: 1)判断条件是否为非0(满足),如果满足,则进入循环体;如果不满足,则退出循环 ,执行while之后的语句 2)执行循环体 3)又回到第1步进行判断 while循环的流程图: 使用while循环实现1+2+3+...+100 int i; int sum; sum=0; i=1; while(i=100) { sum+=i; i++; } printf(1+2+3+...+100=%d \n,sum); 关于while循环,需要说明的几点: (1)sum和i的初值问题,应该在while之前就进行正确地设定,如上面:sum=0,i=1,如果这两个没有设定,结果:sum和i的值就是不确定的,最后的结果也就是不确定的; (2)循环体内部必须要i++,不然:i的值永远是1,这样,while(i=100)就永远成立,从而变成一个死循环; (3)由于循环体内有两条语句,故应该用一对{}括起来,如果忘了这个{},结果: while(i=100) sum+=i; i++; 则i++这条语句并不属于while循环,从而结果也是死循环; (4)因为while构成的循环,一开始就要进行判断条件是否满足,所以,如果条件一开始就不满足,可能会出现循环次数为0的情况。 (5)while循环比goto循环要容易理解,也容易书写 5.4 用do-while语句构成循环 一般格式: do { //循环体 }while(条件); //特别注意while后面的这个分号 其执行过程: (1)进入循环体,执行循环体语句 (2)判断while中的条件,如果条件满足,则继续执行上面的第(1)条;如果条件不满足,则退出循环,执行while后面的语句; 显然,do在这里只起一个边界的作用。 关于do-while循环,需要注意的问题: (1)正确设定初值,如果初值忘了设定,可能结果会出错; (2)do-while与while循环不同点在于,while可能会一次循环都不会执行(因为while是先判断条件),而do-while至少会执行一次循环; (3)仍然要注意do-while中的循环条件,如果循环条件没有正确设定,可能也会变成死循环; 关于g

文档评论(0)

ipad0e + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档