- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.1 while语句以及用while语句构成的循环结构 说明: 5.1.2 while循环的执行过程 注意: (1)while语句的循环体可能一次都不执行,因为while后圆括号中的条件表达式可能一开始就为0. (2)不要把由if语句构成的分支结构与由while语句构成的循环结构混同起来。若if后条件表达式的值为非0,其后的if子句只可能执行一次;而while后条件表达式的值为非0时,其后的循环体语句可能重复执行。在设计循环时,通常应在循环体内改变条件表达式中有关变量的值,使条件表达式的值最终变为0,以便能结束循环。 (3)当循环体需要无条件循环,条件表达式可以设为1(恒真),但在循环体内要有带条件的非正常出口(break等)。 【例5.1】用while语句求s=1+2+3+ … +100 #includestdio.h main() { int i,sum=0; i=1; while(i=100) { sum=sum+i; i++; } printf(“sum=%d\n”,sum); } 【例5.2】用while语句求s=1+1/ (2*2)+1/ (3*3)+1/ (4*4)+ … +1/ (100*100) 【例5.3】用 公式求 ∏的近似值,直到最后一项的绝对值小于10-6为止。 5.2 do-while语句以及用do-while语句构成的循环结构 说明: 5.2.2 do-while循环的执行过程 do-while循环与while循环的重要区别是:while循环的控制出现在循环体之前,只有当while后面条件表达式的值为非0时,才可能执行循环体,因此循环体可能一次都不执行;在do-while构成的循环中,总是先执行一次循环体,然后再求条件表达式的值,因此,无论条件表达式的值是0还是非0,循环体至少要被执行一次。 【例5.4】用do-while语句求s=1+2+3+ … +100。 #includestdio.hmain(){ int i,sum=0; i=1; do { sum=sum+i; i++; } while(i=100); printf(“%d\n”,sum); } 【例5.5】用迭代法求方程cosy=y的根,要求误差小于10-6。 【例5.6】计算Fibonacci数列,直到某项大于1000为止,并输出该项的值。 #includestdio.hmain(){ int f1,f2,f ; f1=0; f2=1; do { f=f1+f2; f1=f2; f2=f; } while(f2=1000); printf(“F=%d\n”,f2); } 5.3 for语句以及用for语句构成的循环结构 例如:for(i=1; i=100; i++) sum=sum+i; 对于以上for语句的一般形式也可以改写成while循环的形式: 表达式1; while(表达式2) { 循环体 表达式3; } 5.3.2 for循环的执行过程 5.3.3 有关for语句的说明 如果3个表达式都省略,则for是无循环终止条件的循环,可以利用break语句终止循环,例如: i=1; for(; ;) { sum=sum+i; i++; if(i100)break; /* 如果i大于100,则退出循环 */ } 2、for语句中的逗号表达式 3、循环体为空语句 【例5.7】根据公式S=1+1/(1+2)+1/(1+2+3)+ … +1/(1+2+3+ … +n),求前20项之和。 【例5.8】从键盘输入一个正整数,判断它是否为素数(质数)? 解法1:(标志变量法 ) #includestdio.h main() { int x,i,f=1; /* f是标志变量 */ scanf(“%d”,x); for(i=2;ix;i++) if(x%i==0) {f=0;break;} if(f==1) printf(“是素数”); else printf(“不是素数”); } 解法2:利用判断循环是如何退出的方法,编写程序如下: #includestdio.h main() { int x,i; scanf(“%d”,x);
您可能关注的文档
最近下载
- Unit 1 I love sports Part 1 (课件)2025-2026学年度外研版(三起)英语四年级上册.pptx VIP
- 高血压指南最新版2025完整版原文.docx VIP
- 四川开放大学《演讲与口才》终结性考核-95分.doc VIP
- HACCP过敏原控制程序.pdf VIP
- 浙江省温州市乐成寄宿中学2022-2023学年高一上学期语文期初月考试卷(含答案).docx VIP
- QBT 2623.4-2003 肥皂试验方法 肥皂中水分和挥发物含量的测定 烘箱法.docx VIP
- 地理信息安全在线培训考试题目完整版答案.docx
- 新代说明书.doc VIP
- 水泥混凝土路面“白改黑”施工工艺.pdf VIP
- 中考语文名著导读《红星照耀中国》专项练习题(含答案)1.doc VIP
文档评论(0)