




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计,第九课 switch-case 多分支开路语句,9.1 switch-case 语句,在编写应用程序时,在必须从很多可以的选项中选择一组指令的地方,可以使用 if-else 链。在将一个整数表达式的值与特定的值进行比较时,可以使用 switch-case 语句来替代 if-else 链。switch-case 语句的常规格式如下: switch(整型表达式) case 常量1: 语句系列1; break; case 常量2: 语句系列2; break; . . case 常量n: 语句系列n; break; default: 语句 n+1; ,9.2 switch-case 常规书写格式,switch(整型表达式) case 常量1: 语句系列1; break; case 常量2: 语句系列2; break; . . case 常量n: 语句系列n; break; default: 语句 n+1; ,复合语句开始,switch和复合语句结束,以冒号结束,以冒号结束,以冒号结束,以冒号结束,缩进,再次缩进,缩进,9.3 switch-case 执行流程图,在 switch-case 语句中有4个新的关键字:switch、case、default 和 break,下面分别给予介绍。 关键字 switch 标识 swithc-case 语句的开始。该关键字后的圆括号内的整型表达式将得到赋值,然后将该表达式的结果与复合语句内包含的各种可以的值依次进行比较。 swith 语句中的表达式必须被指定为整数结果值,否则将会出现编译错误。在 switch-case 语句内,关键字 case 被用来标识或标记与 switch 表达式的值进行比较的每个值。 switch 表达式的值与这些 case 值依次进行比较,直到找到匹配的值。当找到匹配值时,执行将从紧跟着该匹配值的语句开始,因此,如下所示,表达式的值决定了在 switch 语句中执行实际开始的位置:,9.4 switch 和 case 关键字,在一个 switch 语句中可以采用任意顺序来包含任意数目的 case 标签。但是,如果表达式的值与所有 case 值都不匹配,那么将不执行任何语句,除非遇到关键字 default。关键字 default 是可选的,并且它与 if-else 链中的最后一个 else 的作用相同。,9.5 default 关键字,switch(整型表达式) case 常量1: . . break; case 常量2: . . break; . . case 常量n: . break; default: . /switch 语句结束,若表达式等于常量1,则从这里开始,若表达式等于常量2,则从这里开始,若表达式等于常量n,则从这里开始,若所有常量都不匹配,则从这里开始,/模拟ATM机菜单系统程序片段(完整程序请参考 ex09_01.c) /执行各个分支 switch( key ) case 1: printf(“您执行的是修改密码操作!n“); case 2: printf(“您执行的是转帐操作!n“); case 3: printf(“您执行的是存款操作!n“); case 4: printf(“您执行的是取款操作!n“); case 5: printf(“您执行的查询余额操作!n“); case 6: printf(“系统退出!n“); default: printf(“您选择了一个错误的操作!n“); ,一旦通过 switch 语句确定了入口点,所有进一步的 case 赋值都会被忽略,并且,除非遇到关键字 break,否则执行将一直持续到复合语句结束,这就是采用 break 语句的原因,它将标识特定 case 的结束,并使得立即退出 switch 语句,因此,就像关键字 case 标识复合语句中可以存在的起始点一样,break 语句将确定终止点。如果省略了 break 语句,那么匹配的 case 值后的所有情况(包括 default 情况)都会被执行。,10.6 break 关键字,switch(整型表达式) case 常量表达式1: . . break; case 常量表达式2: . . break; . . case 常量表达式n: . break; default: . /switch 语句结束,若表达式等于常量1,则从这里开始,若表达式等于常量2,则从这里开始,若表达式等于常量n,则从这里开始,若所有常量都不匹配,则从这里开始,跳出,跳出,跳出,/模拟ATM机菜单系统程序片段(完整程序请参考 ex09_02.c) /执行各个分支 switch( key ) case 1: printf(“您执行的是修改密码操作!n“); break; /跳出switch语句 case 2: printf(“您执行的是转帐操作!n“); break; /跳出switch语句 case 3: printf(“您执行的是存款操作!n“); break; /跳出switch语句 case 4: printf(“您执行的是取款操作!n“); break; /跳出switch语句 case 5: printf(“您执行的查询余额操作!n“); break; /跳出switch语句 case 6: printf(“系统退出!n“); break; /跳出switch语句 default: printf(“您选择了一个错误的操作!n“); ,/* 执行下列程序(ts09_01.c,输入为 1 时运行结果是_, 输入为 2 时运行结果是_。*/ #include void main() int k; scanf(“%d“, ,在编写 switch 语句时,可以使用多个 case 值来引用同一组语句;default标签是可选的。,9.7 多个 case 值引用同一组语句,/程序片段:输入月份,输出相应的天数(if-else链) /完整程序请参考 ex09_03.c /求相应月份的天数 if(month=1 | month=3 | month=5 | month=7 | month=8 | month=10 | month=12) days = 31; else if(month=2) days = 28; else if(month=4 | month=6 | month=9 | month=11) days = 30; else days = 0;,/程序片段:输入月份,输出相应的天数(switch 结构) /完整程序请参考 ex09_04.c /求相应月份的天数 switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: days = 28; break; case 4: case 6: case 9: case 11: days = 31; break; default: days= 0; ,例子:如表所示是学生的等级成绩情况。 表 学生的等级成绩 编写一个C程序,接受学生的分数,将分数成绩转换成相应的等级成绩,并显示等级成绩。,9.8 switch 的应用,/* 程序片段:将学生分数成绩转换成相应的等级成绩 完全程序请参考 :ex09_05.c */ switch(score/10) /score/10对百分制成绩进行折算 case 10: case 9: printf(“A 等n“); break; case 8: printf(“B 等n“); break; case 7: printf(“C 等n“); break; case 6: printf(“D 等n“); break; default: printf(“E 等n“); ,/* 程序片段:将学生分数成绩转换成相应的等级成绩 完全程序请参考 :ex09_06.c */ if( score100 | score0 ) printf(“输入成绩错误!n“); else switch( score/10 ) /score/10对百分制成绩进行折算 case 10: case 9: printf(“A 等n“); break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建南平闽延电力建设公司招聘3人笔试历年参考题库附带答案详解
- 2025甘肃定西市陇西县人力资源有限公司招聘工作人员4人笔试历年参考题库附带答案详解
- 2025湖南冷链物流集团招聘法务主管1名笔试历年参考题库附带答案详解
- 2025年西安市工业合作联社下属企业招聘笔试笔试历年参考题库附带答案详解
- 2025年湖南邵阳市新宁县城乡建设发展集团有限公司招聘拟聘人员笔试历年参考题库附带答案详解
- 2025北京国际大数据交易所有限责任公司招聘笔试历年参考题库附带答案详解
- 2025中国电信股份有限公司淮南分公司实习生招募80人笔试历年参考题库附带答案详解
- 2025哈尔滨“丁香人才周”(春季)引才现场招聘活动模拟试卷及答案详解(典优)
- 2025年合肥滨投文化创意发展有限公司招聘3人考前自测高频考点模拟试题及参考答案详解1套
- 2025广东运管所郁南县亮丽路灯管理有限公司招聘员工1名考前自测高频考点模拟试题及答案详解(夺冠系列)
- 通勤车租赁投标方案(技术标)
- 全国优质课一等奖中职中专计算机专业教师教学设计和说课大赛《Premiere视频制作初体验》说课课件
- 2023年云南省中考道德与法治试卷及答案解析
- GB/T 19812.5-2019塑料节水灌溉器材第5部分:地埋式滴灌管
- 世联-洛阳五女冢旧改高端大盘项目整体定位
- FZ/T 01093-2008机织物结构分析方法织物中拆下纱线线密度的测定
- 集中供热管网工程监理大纲范本
- 新食品生产许可管理办法培训课件
- 餐厅厨房设备采购清单
- 工程联系函(模板)
- 2022年及往年真题六西格玛绿带复习题及答案
评论
0/150
提交评论