选择结构程序设计开关语句

选择结构程序设计开关语句

ID:9119365

大小:42.50 KB

页数:5页

时间:2018-04-18

选择结构程序设计开关语句_第1页
选择结构程序设计开关语句_第2页
选择结构程序设计开关语句_第3页
选择结构程序设计开关语句_第4页
选择结构程序设计开关语句_第5页
资源描述:

《选择结构程序设计开关语句》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、导入如果分支太多,会导致嵌套的if语句层次数过多,则程序冗长且可读性较低。C语言中,可以用开关语句(switch语句)代替条件语句来简化程序的设计。一、开关语句:switch语句1.形式switch(表达式){case常量1:语句1case常量2:语句2case常量3:语句3……case常量n:语句ndefault:语句n+1}2.执行过程当执行switch语句时,首先计算紧跟其后的一对括号中表达式的值,然后在switch语句体内寻找与该值吻合的case常量值。如果有与该值相等的常量,则执行其后的语句,接着就不再进行比较,依次顺序执行后面的所有ca

2、se语句和default语句,直到switch语句体结束。如果圆括号内的表达式的值与所有case后面的常量均不相等时,如果存在default语句,则执行其后的语句,否则跳过switch语句体,什么也不做。3.说明①switch后面圆括号内表达式的值一般为整型、字符型或枚举型,表达式两边的一对圆括号不能省略。②每个case后的“常量表达式”的类型应该与switch后面圆括号内表达式的类型一致。③各case后的常量值应该互不相同,起到语句标号的作用。④每个case后面的常量出现次序发生改变时,不影响程序运行结果。从程序执行效率角度考虑,把发生频率高的情

3、况放在前面。⑤case后的语句省略,则执行与后继case相同的语句。也就是说,找到匹配的case常量,顺序执行case后的语句和后继case后的语句。这样,并未实现真正意义上的分支。4.举例根据输入的学生成绩,编程实现输出对应的等级。(见课本第96页例题4.7)可以通过绘制传统流程图或PAD图来表示算法。(略)#includemain(){intscore,mark;scanf("%d",&score);mark=score/10;switch(mark){case10:if(score==100)printf("%d--A"

4、,score);elseprintf("inputerror!");case9:printf("%d--A",score);case8:printf("%d--B",score);case7:printf("%d--C",score);case6:printf("%d--D",score);case5:case4:case3:case2:case1:case0:printf("%d--E",score);default:printf("inputerror!");}}问题:上机测试上面的程序,分析存在的问题。原因:测试程

5、序时,找到符合要求的case分支就开始执行,同时把其后的所有分支全部执行,包括default在内的分支。这样,并没有实现真正意义上的分支。与题目要求不符。需要进行修改!如何进行修改呢?请往后学习哦!5.break语句为了解决上面的问题,在switch语句中使用break语句即可。break语句也称间断语句,可以在case之后执行的语句最后加上break语句。每当执行到break语句时,立即跳出switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正地起到分支的作用。/*添加break语句,修改上面的程序代码,使

6、switch真正起到多分支作用。*/#includemain(){intscore,mark;scanf("%d",&score);mark=score/10;switch(mark){case10:if(score==100)printf("%d--A",score);elseprintf("inputerror!");break;case9:printf("%d--A",score);break;case8:printf("%d--B",score);break;case7:printf("%d--C",s

7、core);break;case6:printf("%d--D",score);break;case5:case4:case3:case2:case1:case0:printf("%d--E",score);break;default:printf("inputerror!");}}6.程序举例编写设计一个简单计算器程序。要求根据用户从键盘输入的表达式:操作数1运算符op操作数2,计算表达式的值。假设指定的运算符为+,-,*,/。#includemain(){intdata1,data2;charop;printf("

8、Pleaseinputexpression:");/*在格式转换说明符%c的前后各加一个空格,可以实现输入的表达式中操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。