收藏 分销(赏)

C语言switch.ppt

上传人:仙人****88 文档编号:14194808 上传时间:2026-07-09 格式:PPT 页数:20 大小:549KB 下载积分:10 金币
下载 相关
C语言switch.ppt_第1页
第1页 / 共20页
C语言switch.ppt_第2页
第2页 / 共20页


点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,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,&k,);,switch(k,),case 1:,printf(%d,k,+);,break;,case 2:,printf(%d,k,+);,case 3:,printf(%d,k,+);,break;,case 4:,printf(%d,k,+);,default:printf(Full!n,);,在编写,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,的应用,分数成绩,等级成绩,大于或等于,90,A,小于,90,但大于或等于,80,B,小于,80,但大于或等于,70,C,小于,70,但大于或等于,60,D,小于,60,E,/*,程序片段:将学生分数成绩转换成相应的等级成绩完全程序请参考:,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;,case 8:printf(B 等n);,break;,case 7:printf(C 等n);,break;,case 6:printf(D 等n);,break;,default:printf(A 等n);,例子:根据下表计算一下销售人员的月收入,表 销售人员的月收入,编写一个,C,程序,接受销售人员的月销售额,计算其月收入,作业,月销售额,收入,大于或等于,50,000,美元,375,美元,加上销售额的,16%,小于,50,000,美元,但大于或等于,40,000,美元,350,美元,加上销售额的,14%,小于,40,000,美元,但大于或等于,30,000,美元,325,美元,加上销售额的,12%,小于,30,000,美元,但大于或等于,20,000,美元,300,美元,加上销售额的,9%,小于,20,000,美元,但大于或等于,10,000,美元,250,美元,加上销售额的,5%,小于,10,000,美元,200,美元,加上销售额的,3%,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服