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

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

ID:62154120

大小:37.00 KB

页数:5页

时间:2021-04-19

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

《选择结构程序设计:开关语句.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途导入如果分支太多,会导致嵌套的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常量值。如果有与该值

2、相等的常量,则执行其后的语句,接着就不再进行比较,依次顺序执行后面的所有case语句和default语句,直到switch语句体结束。如果圆括号内的表达式的值与所有case后面的常量均不相等时,如果存在default语句,则执行其后的语句,否则跳过switch语句体,什么也不做。3.说明①switch后面圆括号内表达式的值一般为整型、字符型或枚举型,表达式两边的一对圆括号不能省略。 ②每个case后的“常量表达式”的类型应该与switch后面圆括号内表达式的类型一致。③各case后的常量值应该互不相同,起到语句标号的作用。④每个case后面的常量出现次序发生

3、改变时,不影响程序运行结果。从程序执行效率角度考虑,把发生频率高的情况放在前面。⑤case后的语句省略,则执行与后继case相同的语句。也就是说,找到匹配的case常量,顺序执行case后的语句和后继case后的语句。这样,并未实现真正意义上的分支。4.举例根据输入的学生成绩,编程实现输出对应的等级。(见课本第96页例题4.7)可以通过绘制传统流程图或PAD图来表示算法。(略)#include

4、tch(mark){  case 10 :if(score== 100)  printf("%d--An", score);  else      printf("input error!n");   case9:printf("%d--A",score); case 8:printf("%d--B\n",score);  case7 :printf("%d--C",score);    case6:printf("%d--Dn",score);   case5 :   case4: case 3 :   case 2: case1:   ca

5、se 0:printf("%d--E\n", score);   default:printf("input error!n"); }}问题:上机测试上面的程序,分析存在的问题。 原因:测试程序时,找到符合要求的case分支就开始执行,同时把其后的所有分支全部执行,包括default在内的分支。这样,并没有实现真正意义上的分支。与题目要求不符。需要进行修改!如何进行修改呢?请往后学习哦!5.break语句为了解决上面的问题,在switch语句中使用break语句即可。break语句也称间断语句,可以在case之后执行的语句最后加上break语句。每当执行到

6、break语句时,立即跳出switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正地起到分支的作用。/*添加break语句,修改上面的程序代码,使switch真正起到多分支作用。*/#include<stdio.h>main(){个人收集整理勿做商业用途 intscore,mark;  scanf("%d", &score);  mark=score/10 ; switch(mark){    case10:if(score== 100)    printf("%d--A",score);     else     

7、   printf("inputerror!");     break; case9:printf("%d--A\n",score);      break;     case8  :printf("%d--B\n", score);     break;     case7:printf("%d--C", score);         break; case6:printf("%d--D\n",score);      break;  case 5:case 4:  case3: case2 : case1 :  case 0:printf("%

8、d--E",score);      break

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

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

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