选择结构程序设:开关语句.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
选择结构程序设:开关语句

导入 如果分支太多,会导致嵌套的if语句层次数过多,则程序冗长且可读性较低。C语言中,可以用开关语句(switch语句)代替条件语句来简化程序的设计。 一、开关语句:switch语句 1.形式 switch(表达式){ case 常量1 : 语句1 case 常量2 : 语句2 case 常量3 : 语句3 …… case 常量n : 语句n default : 语句n+1 } 2.执行过程 当执行switch语句时,首先计算紧跟其后的一对括号中表达式的值,然后在switch语句体内寻找与该值吻合的case常量值。如果有与该值相等的常量,则执行其后的语句,接着就不再进行比较,依次顺序执行后面的所有case语句和default语句,直到switch语句体结束。如果圆括号内的表达式的值与所有case后面的常量均不相等时,如果存在default语句,则执行其后的语句,否则跳过switch语句体,什么也不做。 3.说明 ①switch后面圆括号内表达式的值一般为整型、字符型或枚举型,表达式两边的一对圆括号不能省略。 ②每个case后的“常量表达式”的类型应该与switch后面圆括号内表达式的类型一致。 ③各case后的常量值应该互不相同,起到语句标号的作用。 ④每个case后面的常量出现次序发生改变时,不影响程序运行结果。从程序执行效率角度考虑,把发生频率高的情况放在前面。 ⑤case后的语句省略,则执行与后继case相同的语句。也就是说,找到匹配的case常量,顺序执行case后的语句和后继case后的语句。这样,并未实现真正意义上的分支。 4.举例 根据输入的学生成绩,编程实现输出对应的等级。(见课本第96页例题4.7) 可以通过绘制传统流程图或PAD图来表示算法。(略) #include stdio.h main(){ int score , mark ; scanf(%d, score); mark = score / 10 ; switch(mark){ case 10 : if(score == 100) printf(%d--A\n, score) ; else printf(input error!\n); case 9 :printf(%d--A\n, score) ; case 8 :printf(%d--B\n, score) ; case 7 :printf(%d--C\n, score) ; case 6 :printf(%d--D\n, score) ; case 5 : case 4 : case 3 : case 2 : case 1 : case 0 :printf(%d--E\n, score) ; default :printf(input error!\n); } } 问题:上机测试上面的程序,分析存在的问题。 原因:测试程序时,找到符合要求的case分支就开始执行,同时把其后的所有分支全部执行,包括default在内的分支。 这样,并没有实现真正意义上的分支。与题目要求不符。需要进行修改!如何进行修改呢?请往后学习哦! 5.break语句 为了解决上面的问题,在switch语句中使用break语句即可。 break语句也称间断语句,可以在case之后执行的语句最后加上break语句。每当执行到break语句时,立即跳出switch语句体。 switch语句通常总是和break语句联合使用,使得switch语句真正地起到分支的作用。 /*添加break语句,修改上面的程序代码,使switch真正起到多分支作用。*/ #include stdio.h main(){ int score , mark ; scanf(%d, score); mark = score / 10 ; switch(mark){ case 10 : if(score == 100) printf(%d--A\n, score) ; else

文档评论(0)

nbc152 + 关注
文档贡献者

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

1亿VIP精品文档

相关文档