首页技术c中switch语句怎么用,switch语句的语法规则

c中switch语句怎么用,switch语句的语法规则

编程之家2026-06-04693次浏览

大家好,关于c中switch语句怎么用很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于switch语句的语法规则的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

c中switch语句怎么用,switch语句的语法规则

C语言里的switch语句怎么用,最好有例子哈~!

C语言“switch语句”的使用技巧顾红---- C语言作为国际上流行的计算机语言已经和正在被广大的计算机用户使用。凡是使用过的人都会有同样的感觉——C语言的使用灵活这个特点既是优点又是缺点,因为对精通C语言的用户来讲,灵活就意味着编程可以无拘无束,甚至随心所欲;但对初学者或者是尚未摸着规律的用户来说,有时候就会觉得C程序设计有点象雾里看花,摸不着头脑。因为灵活就意味着没有一个标准。而实际上,C语言和其它计算机语言一样,只要你真正掌握了该语言的每一个语句的特点,理解、运用就不难掌握了。下面就C语言中switch语句的使用特点谈谈自己的体会。---- 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。但如果仔细阅读过教材或有关参考书的话,就绝不会有此想法。从语句的功能上来看,PASCAL和case语句或FOXBASE的do case语句中的常量表达式是用来与case后面的表达式比较以确定执行哪一个语句,一旦执行了某一语句,则会自动地结束这一case后的语句;而C的switch语句则不然。首先,switch语句中的常量表达式只是起到一个入口作用,一旦执行了相应的语句后,只要没有强迫中断语句(break),它就会一直按顺序继续执行下去,也就是会执行其它case后面的语句,直到遇到“}”符号才停止。乍看觉得有点不可事议,但若仔细回味且切身编程体会,那么就会感司到C的switch语句的独到之处。接下来就几个具体例子来剖析:switch语句的特点以及区别于其它语言中的相应语句的妙处。----第一个例子:根据输入的百分制成绩,然后给出‘A’~‘E’相应的等级符(90-100为‘A’、80-89为‘B’、70-79为‘B’、60-69为‘C’、0-59为‘E’)。主要的处理程序段如下:(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语言的特点),就会发现有很多错误。首先,对100分和低于50分的情况没有考虑;其次,C语言的switch特点是顺序执行,那么这段程序不输入的分数如何,最后的输出都将是‘E’。因此,修改这段程序,可以得到一个正确答案是: 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的特点。如果将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”);----从这段程序中,我们可以体会到前面所说的该语句的特点。----第二个例子:运输公司对用户计算运费。距离(s)越远,每公里运费越低。具体标准如下: 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)。利用这一特点,可以再设一变量c,它代表250的倍数。当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%。所以可以有如下没有错误的程序段: 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语句与其它语言中相应语句的区别。尽管在学习和教计算机语言的过程中,我们始终认为语言是相通的,这样便于学习一门新的语言。但是真正要把某一门计算机语言学好,非得掌握它的特点。----这里仅仅是自己在编程实践过程中的一点体会,有错误的地方恳请批评指正。希望对你有帮助!

求教c语言中switch 语句的详细用法

C语言程序语句switch:

switch用在编程中,如C语言中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。

switch语句的语法如下(switch,case和default是关键字):

switch( controllingExpression)

{

c中switch语句怎么用,switch语句的语法规则

case constantExpression1:

case constantExpression2:

case constantExpression3:

statements;//当满足constantExpression1、constantExpression2、constantExpression3任何一个都执行statements

break;

case constantExpression:

c中switch语句怎么用,switch语句的语法规则

statements;

break;

...

default:

statements;

break;

}

遵守switch语句规则

switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:

只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。

case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。

case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

C语言switch应用例子:

例一:

#include<stdio.h>

int main()

{

double score;

printf("请输入分数:\n");

scanf("%lf",&score);

switch((int)(score/10))//如果写成witch((int)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;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0:printf("E(不及格)\n");break;

default:printf("Error!\n");

}

}

例二:

#include<stdio.h>

int main()

{

char rank;

printf("请输入分数等级:(A、B、C、D、E)\n");

scanf("%c",&rank);

switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,

{

case'A':printf("A(90~100)\n");break;

case'B':printf("B(80~89)\n");break;

case'C':printf("C(70~79)\n");break;

case'D':printf("D(60~69)\n");break;

case'E':printf("E(0~59)\n");break;

default:printf("error!\n");break;

}

}

例三:

输入年月日,判断这一天是这一年的第几天。

#include<stdio.h>

int main()

{

int year,month,date,leap,days=0;

scanf("%4d%2d%2d",&year,&month,&date);

leap=(year%4==0&&year%100!=0||year%400==0);

switch(month)

{

case 12:days+=30;

case 11:days+=31;

case 10:days+=30;

case 9:days+=31;

case 8:days+=31;

case 7:days+=30;

case 6:days+=31;

case 5:days+=30;

case 4:days+=31;

case 3:days+=28+leap;

case 2:days+=31;

case 1:days+=date;break;

}

printf("%4d年%2d月%2d日是这一年的第%d天。\n",year,month,date,days);

}

希望对你有帮助。

c语言中switch怎么用

C语言中switch是条多分支选择语句。

通常情况下格式如下:

switch(表达式){

case常量表达式1:语句1;

case常量表达式2:语句2;

case常量表达式n:语句n;

default:语句n+1;

}

其中default不一定放在最后

完整格式:

switch(表达式){

case常量表达式1:语句1;

case常量表达式2:语句2;

case常量表达式n:语句n;

default:语句n+1;

case常量表达式n+1:语句n+1;

...

case常量表达式m:语句m;

}

程序会计算表达式里的值,然后和所有的常量表达式进行比较

遇到和常量表达式的值相等的,则从相应的case往下执行,直到结束或遇到break,跳出该switch

如果没有遇到相同的常量表达式,则从default往下执行,直到结束或遇到break,跳出该switch

注意:

1、通常每个switch后面加break,也可以没有。没有则继续往下运行所有case和default里的代码,直到结束或遇到break;

2、case后面是常量表达式,不可以跟变量。

关于c中switch语句怎么用和switch语句的语法规则的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

aippt一键生成百度文库?百度文库怎么一键生成PPT-百度文库输入主题生成PPT步骤一览aim是什么意思?(aim是什么意思啊)