全国计算机等级考试实用应试教程二级C语言选择结构.pptVIP

全国计算机等级考试实用应试教程二级C语言选择结构.ppt

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

4.4 switch语句以及用switch语句和break语句构成的选择结构 4.4.1 switch语句   通过前面的讨论我们知道,if语句处理两个分支,处理多个分支时需使用if~else~if结构,但如果分支较多,则嵌套的if语句层数就越多,程序不但冗长而且理解也比较困难。因此,C语言又提供了一种专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句。   使用switch语句直接处理多个分支(当然包括两个分支)。其一般形式为:  switch(表达式) { case 常量表达式1:  语句1;  break;  case 常量表达式2:  语句2;  break;  ……  case 常量表达式n:  语句n;  break;  ?default:  语句n+1; ?    break;} ?说明: (1)switch、case、break、default均为C语言的保留字。 (2)swich的表达式通常是一个整型或字符型变量,也允许是枚举型变量,其结果为相应的整数、字符或枚举常量。 (3)常量表达式又称为开关常数,必须是与表达式对应一致的整数、字符或枚举常量。 (4)语句1至语句n,可以是简单语句,也可以是复合语句。 (5)在关键字case和常量表达式之间一定要有空格。   ※重点提示:在switch语句中,default以及break是可以有也可以没有的,且case语句标号后的语句也可以省略不写。 4.4.2 switch执行过程   switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用其结果依次与各个case的常量表达式相比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式的值都不相同,则执行default后面的语句n+1,执行后退出switch语句,退出后程序流程转向开关语句的下一个语句。 图4.6 switch语句的执行过程 例如,下面的switch语句可以根据键入考试成绩的等级(grade)输出百分制分数段: 键入A,输出85~100 键入B,输出70~84 键入其他任意字符,输出error switch (grade) { caseA: printf(85~100\n); break; caseB: printf(70~84\n); break; default: printf(error\n);}  注意: (1)在switch~case语句中,各个case常量表达式不一定要按其值的大小顺序来书写语句,但要求各个case后的常量表达式必须是不同的值,以保证分支选择的唯一性。例如:  switch (ch)  {caseA: 语句1; break; caseB: 语句2; break; caseA: 语句2;  break; default: 语句3;}   该例中前2个case语句都是合法的,当变量ch取A、B时,分别执行语句1、2,但最后一条case语句与第一条case语句的常量表达式的值相同,这是不允许的。 (2)如果在case后面包含多条执行语句时,也不需要加大括号,进入某个case后,会自动顺序执行本case后面的所有执行语句。 (3)default总是放在最后,这时,default后不需要break语句。并且,default部分也不是必须的,如果没有这一部分,当switch后面圆括号中表达式的值与所有case后面的常量表达式的值都不相等时,则不执行任何一个分支直接退出switch语句。此时,switch语句相当于一个空语句。例如,将上面例子中switch语句中的default部分去掉,则当输入的字符不是“A”、“B”、时,此switch语句中的任何一条语句也不被执行。 (4)在switch~case语句中,多个case可以共用一条执行语句,例如: case A: case B: printf(60\n); break; 在A、B两种情况下,均执行相同的语句,即输出“60”。 (5)在switch语句中,只有最后一个分支(default)中的break语句的存在于否不影响执行结果。因为没有这个break语句,执行该分支的所有语句后也会自动退出switch语句。而其余各分支中的break语句有与无时的流程是完全不同的。例如在上例中,如果caseA、B后面没有break语句,则当grade=

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档