当前位置:首页>行业快讯 >

快消息!switch语句用法详解_switch语句用法

时间:2023-06-06 00:09:25    来源:互联网

1、凡是使用过的人都会有同样的感觉——C语言的使用灵活这个特点既是优点又是缺点, 因为对精通C语言的用户来讲, 灵活就意味着编程可以无拘无束, 甚至随心所欲; 但对初学者或者是尚未摸着规律的用户来说, 有时候就会觉得C程序设计有点象雾里看花, 摸不着头脑。

2、 因为灵活就意味着没有一个标准。


(资料图片)

3、 而实际上,C 语言和其它计算机语言一样, 只要你真正掌握了该语言的每一个语句的特点, 理解、 运用就不难掌握了。

4、 下面就C语言中switch 语句的使用特点谈谈自己的体会。

5、 ---- switch 语句的格式如下: switch( 表达式) {case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式3: 语句3 case 常量表达式n: 语句n default : 语句n+1 } ---- 从表面上看来,switch 语句与PASCAL 语言中的case 语句以及FOXBASE 中的do case 语句非常类似, 只是关键字有所不同: 一个是switch; 而另一个是case 或do case。

6、 但如果仔细阅读过教材或有关参考书的话, 就绝不会有此想法。

7、 从语句的功能上来看,PASCAL 和case 语句或FOXBASE 的do case 语句中的常量表达式是用来与case 后面的表达式比较以确定执行哪一个语句, 一旦执行了某一语句, 则会自动地结束这一case 后的语句; 而C 的switch 语句则不然。

8、 首先,switch 语句中的常量表达式只是起到一个入口作用, 一旦执行了相应的语句后, 只要没有强迫中断语句(break),它就会一直按顺序继续执行下去, 也就是会执行其它case 后面的语句, 直到遇到“}” 符号才停止。

9、 乍看觉得有点不可事议, 但若仔细回味且切身编程体会, 那么就会感司到C的switch 语句的独到之处。

10、 接下来就几个具体例子来剖析:switch 语句的特点以及区别于其它语言中的相应语句的妙处。

11、 ---- 第一个例子: 根据输入的百分制成绩, 然后给出‘A’ ~‘E’ 相应的等级符(90-100 为‘A’、80-89 为‘B’、70-79 为‘B’、60-69 为‘C’、0-59 为‘E’)。

12、主要的处理程序段如下:(temp、score、grade 皆为整型变量) temp=score/10; switch(temp) {case 9:grade=‘A’; case 8:grade=‘B’; case 7:grade=‘C’; case 6:grade=‘D’; case 5:grade=‘E’; } printf(“the grade is %c”,grade); ---- 仔细阅读这段程序( 根据C语言的特点),就会发现有很多错误。

13、 首先, 对100 分和低于50 分的情况没有考虑; 其次,C 语言的switch 特点是顺序执行, 那么这段程序不输入的分数如何, 最后的输出都将是‘E’。

14、因此, 修改这段程序, 可以得到一个正确答案是: temp=score/10; switch(temp) {case 10: case 9:grade=‘A’;break; case 8:grade=‘B’;break; case 7:grade=‘C’;break; case 6:grade=‘D’;break; case 5: case 4: case 3: case 2: case 1: case 0:grade=‘E’; } printf(“the grade is %c,grade”); ---- 但这么一个结果还不算是一个好的C程序, 因为它只是能得到正确的解, 没有真正用到C的特点。

15、 如果将C的特点运用到这段程序中, 则程序将优化成如下: grade=‘A’; temp=score/10; switch(temp) {case 0: case 1: case 2: case 3: case 4: case 5:grade++; case 6:grade++; case 7:grade++; case 8:grade++; case 9: case 10: } printf(“the grade is %c,grade”); ---- 从这段程序中, 我们可以体会到前面所说的该语句的特点。

16、 ---- 第二个例子: 运输公司对用户计算运费。

17、 距离(s) 越远, 每公里运费越低。

18、 具体标准如下: s < 250 (km) 没有折扣 250 < =s < 500 (km) 2% 折扣 500 < =s < 1000 (km) 5% 折扣 1000 < =s < 2000(km) 8% 折扣 2000 < =s < 3000(km) 10% 折扣 3000 < =s (km) 15% 折扣 ---- 设每公里每吨货物的基本运费为p, 货物重为w, 距离为s, 折扣为d, 则总运费计算公式为: ---- f=p*w*s*(1-d) ---- 分析此问题, 折扣的变化是有规律的: 折扣的“ 变化点” 都是250 的倍数(250,500,1000,2000,3000)。

19、利用这一特点, 可以再设一变量c, 它代表250 的倍数。

20、 当c<1 时, 无折扣;1<=c<2 时, 折扣为d=2%;2<=c<4 时,d=5%;4<=c<8 时,d=8%;8<=c<12 时,d=10%; c>=12 时,d=15%。

21、 所以可以有如下没有错误的程序段: scanf(“%f,%f,%d”,&p,&w,&s); if(s>=3000)c=12 else c=s/250 switch(c) {case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4: case 5: case 6: case 7:d=8;break; case 8: case 9: case 10: case 11:d=10;break; case 12:d=15; } f=p*w*s*(1-d/100.0); printf(“freight%15.f”,f); ---- 如同前一个题目, 这个程序段也完全可以利用switch 特点, 改进优化得到如下程序段: d=0 scanf(“%f,%f,%k”,&p,&w,&s); if(s>=3000)c=12 else c=s/250 switch(c) {case 12:d+=5; case11: case 10: case 9: case 8:d+=2; case 7: case 6: case 5: case 4:d+=3; case 3: case 2:d+=3; case 1:d+=2; case 0: } f=p*w*s*(1-d/100.0); printf(“freight%15.4f”,f); ---- 从上面两个例子分析, 使我们可以比较清楚地看见C语言中switch 语句与其它语言中相应语句的区别。

22、 尽管在学习和教计算机语言的过程中, 我们始终认为语言是相通的, 这样便于学习一门新的语言。

23、 但是真正要把某一门计算机语言学好, 非得掌握它的特点。

24、 ---- 这里仅仅是自己在编程实践过程中的一点体会, 有错误的地方恳请批评指正。

25、 希望对你有帮助!。

本文到此分享完毕,希望对大家有所帮助。

标签:

夏季补水新风尚 市场上功能性饮料新品频出

前段时间,刘畊宏引爆了全民健身热潮,与此同时,全国多地迎来高温天气。在多重因素的影响下,越来越多的消费者意识到了补充电解质的重要性

2022-08-09

郑州管城区、二七区今天开展核酸检测,最全采样点看这里

今天(5月18日)郑州市管城区7:00—17:00二七区9:00—16:00开展核酸检测管城回族区新冠肺炎疫情防控指挥部办公室关于在全区范围开展新冠病

2022-05-19

郑州发布99号通告:调整封控管控区域

郑州市新冠肺炎疫情防控指挥部办公室关于调整封控管控区域的通告(2022年99号)根据疫情形势变化,经郑州市疫情防控指挥部研究,自5月18日

2022-05-19

5月17日河南新增本土确诊病例3例、本土无症状感染者8例

5月17日0—24时,全省新增本土确诊病例3例(郑州市3例),含1例无症状感染者转确诊病例(在郑州市),新增本土无症状感染者8例(郑州市6例

2022-05-19

【行走郑州·读懂最早中国】锁定“云游麦田里的博物馆”直播,探寻最早中国

黄河孕育华夏,麦穗延续苍生,文物折射历史,历史照亮未来。看直播 抽门票为全面展示郑州城市魅力,深入塑造行走郑州·读懂最早中国品牌体

2022-05-19

郑州约谈百果园郑州地区负责人

今日记者获悉,针对近期成都、武汉相继曝出百果园销售腐败变质水果切盘的负面新闻,为全面加强能力作风建设,严格落实国家食品安全示范城市

2022-05-19

全力备汛!郑州94支队伍10313人集结到位

记者从近日召开的郑州市2022年城市防汛工作会议上了解到,郑州市组建了94支共10313人的防汛应急抢险队伍。目前,这些队伍正在全力备汛。据

2022-05-19

【行走河南·读懂中国】河南四大文旅集团入榜全国文旅集团品牌影响力百强

2022年5月16日,迈点研究院发布《2022年4月中国文旅业发展报告》,河南省的四个知名文旅集团,银基文旅集团、建业文旅、洛阳文旅集团、河南

2022-05-19

图集|来自郑州五月的浪漫,闯入莫奈的花园

遇见郑州五月的浪漫,走进这片虞美人和矢车菊的花海,彷佛置身于莫奈的花园。色彩缤纷的花儿在微风中摇曳生姿,好似步入童话般的世界。

2022-05-19

郑州市普通中专采用网上报名 志愿填报时间为5月22日〜25日

5月17日上午,《2022年郑州市普通中等专业学校招生工作意见》发布,今年,郑州市普通中专采用网上报名。普通中专志愿填报时间为5月22日至25

2022-05-19

X 关闭

X 关闭