分析C语言循环语句和循环控制问题.doc

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

一、循环控制 (一)、break语句 break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。 当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。 例如: int main(int argc, char *argv[]) { int sn=0,i; for(i=1;i=100;i++) { if(i==51) break; /*如果i等于51,则跳出循环*/ sn+=i; /*1+2+……+50*/ } printf(%d\n,sn); } 可以看出,最终的结果是1+2+……+50。因为在i等于51的时候,就跳出循环了。自己写写怎样在while和do--while循环中增加break语句。 注意: 1. break语句对if-else的条件语句不起作用。 2. 在多层循环中,一个break语句只向外跳一层。 例如: int main(int argc, char *argv[]) { int i,j; printf(i j\n); for(i=0;i2;i++) for(j=0;j3;j++) { if(j==2) break; printf(%d %d\n,i,j); } } 输出结果为: i j 0 0 0 1 1 0 1 1 当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。 (二)、continue语句 continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。 continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。 例如: int main(int argc, char *argv[]) { int sn=0,i; for(i=1;i=100;i++) { if(i==51) continue; /*如果i等于51,则结束本次循环*/ sn+=i; /*1+2+……+50+52+……+100*/ } printf(%d\n,sn); } 从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。 int main(int argc, char *argv[]) { int i,j; printf(i j\n); for(i=0;i2;i++) for(j=0;j3;j++) { if(j==1) continue; printf(%d %d\n,i,j); } } 输出结果为: i j 0 0 0 2 1 0 1 2 (三)、goto语句 goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto语句的使用格式为: goto 标号; 其中标号是Turbo C 2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。标号既然是一个标识符,也就要满足标识符的命名规则。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。 int main(int argc, char *argv[]) { int sn=0,i; for(i=1;i=100;i++) { if(i==51) goto loop; /*如果i等于51,则跳出循环*/ sn+=i; /*1+2+……+50*/ } loop: ; printf(%d\n,sn); } 可以看出,这儿的goto语句和break作用很类似。 这儿的loop: ; printf(%d\n,sn); 也可以写成loop: printf(%d\n,sn); int main(int argc, char *argv[]) { int sn=0,i; for(i=1;i=100;i++) { if(i==51) goto loop; /*如果i等于51,则跳出本次循环*/ sn+=i; /*1+2+……+50+52+……+100*/ loop: ; } printf(%d\n,sn); } 可以看出这儿的loop语句和continue的作用类似。 但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档