第03章节程序的控制结构幻灯片.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 3.5 循环结构 2.continue语句 continue语句的一般形式为: continue; 其作用为结束本次循环。对于while和do-while循环,跳过循环体中其余语句,转向循环终止条件的判断; 而对for循环,跳过循环体中其余语句,转向循环变量增值表达式的计算。 continue语句只能用于循环语句中,并常常与if语句一起使用。在嵌套循环时,continue语句只对包含它的循环层有作用,与其他层循环无关。 continue语句和break的区别是:continue语句只结束本次循环,而不是终止整个循环的执行,并没有增加循环的出口; 而break语句则是结束循环,不再进行条件判断,可能增加循环的出口。 * 3.5 循环结构 例3-24 输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是“水仙花数”,因为153=13+53+33 。 分析:首先确定水仙花数n可能存在的范围,因为n是一个三位数,所以范围确定为n从100变化到999,分离出的百位i、十位j、个位k后,只要判断n是否等于i*i*i+j*j*j+k*k*k即可知道n是否水仙花数。 源程序如下: #include stdio.h main() { int i, j, k, n; printf(narcissus numbers are:); for(n=100; n=999; n++) { i=n/100; j=n/10-i*10; k=n%10; if(n!=i*i*i+j*j*j+k*k*k) continue; printf(%d , n); } printf(\n); } 运行结果如下: narcissus numbers are:153 370 371 407 说明: (1)本例中的两个语句:if(n!=i*i*i+j*j*j+k*k*k) continue; printf(“%d ”,n); 可以改用if语句完成:if(n==i*i*i+j*j*j+k*k*k) printf(“%d ”,n); 事实上,continue语句的功能常常可以由其他的语句来代替实现。根据continue语句的功能: if (条件A) continue; 语句序列B; 可以改写为: if (!(条件A)) 语句序列B; (2)求3位数的百位、十位及个位还有多种方法,如十位j还可以用下列方法来求: j=n/10%10; 或 j=n%100/10; 或 j=(n-i*100)/10; * 3.5 循环结构 3.goto语句 goto语句是无条件转移语句,可用来实现程序的任意转移。它的一般形式为: goto语句标号; 语句标号:语句; … 或 … 语句标号:语句; goto语句标号; 其中“语句标号”是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句时,程序将无条件跳转到标号处并执行其后的语句。另外,标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if分支语句连用,当满足某一条件时,程序跳到标号处运行,比如它们可用来构成循环。 例3-25 用goto语句求n!=1*2*3* …*n的值。 源程序如下: #include stdio.h main() { int i=1, n; long int fac=1; printf(Please input n:); scanf(%d, n); loop: if(i=n) /*其中“loop:”是标号语句,“loop”叫语句标

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档