百度
360搜索
搜狗搜索

c语言中的switch语句格式,c语言中switch怎么用?详细介绍

本文目录一览: C语言switch语句

c语言中,switch语句的使用格式如下:
switch(表达式)
{

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

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

......

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

default
:
语句n+1;
}
举例如下:
int i=4, a=0;
switch(i)
{
case 1 : a++; break; // 如果i=1,执行case 1 后面的语句,执行完后退出switch
case 2 : a+=2; break; // 如果i=2,执行case 2 后面的语句,执行完后退出switch
case 4 : a+=4; break; // 如果i=4,执行case 4 后面的语句,执行完后退出switch
default : a=0; // 如果i不等于上面所以case中的值,执行default后面的语句,执行完后退出switch
}
switch()
{case
常量表达式1:
语句1;
.
.
.
.
case
常量表达式n:
语句n;
default:
语句n+1;
}
说明:
1
switch后面的表达式,ANSI允许它是任何类型
2
当表达式式值和case后面常量表达式值相等的时候,就执行.如果没有一个相等就执行default后面的语句.
3每个case后面的值必须是不等的
4
每个case和default的次序不影响程序执行
5如果执行完一个case
就跳到下一个case
如果case后面有break则执行后跳出switch
switch结构的一般形式是;
switch(表达式)
{
case(必须为常量):语句1;break;
case(同上):语句2;break;
case(同上):语句3;break;
……
……
case(同上):语句n;break;
default:语句n+
其中
break可以不要,但如果你不加,那么如果执行到没有加break那一句后不跳出case而继续执行紧跟其后的case或default

c语言中switch怎么用?

首先说明,它不是函数,只是个语句。 switch(E) {case e1: 成分子句1; case e2:成分子句2;...case eN:成分子句N;default:成分子句n+1;} c中的用法很活的。
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语句

scanf语句前有不能识别的符号,去掉就可以了。
#include

void main()

{

int sum;

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

scanf("%d",&sum);

switch(sum)

{

case 1:

printf("李俊基1");

break;

case 2:

printf("李俊基2");

break;

case 3:

printf("李俊基3");

break;

default:

printf("你输入有误");

break;

}

}

default后面不要加break试试

C语言程序语句switch:

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

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

  switch ( controllingExpression )

  {

  case constantExpression1 :

  case constantExpression2 :

  case constantExpression3 :

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

  break;

  case constantExpression :

  statements ;

  break;

  ...

  default :

  statements ;

  break;

  }

  遵守switch语句规则

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

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

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

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

  C语言switch应用例子:

  例一:

  #include

  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

  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

  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);

  }

希望对你有帮助。

阅读更多 >>>  update语句可以用in吗,update语句用法

简述c语言中switch语录的特点

switch 语句是C语言提供了另一种用于多分支选择的语句
语法:
switch (表达式){
case 值1 : 语句1 break;
case 值2 : 语句2 break;
...
default : 语句n break;
}
说明:
case 值1: case 值2:只是一个选择标记,从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句。
switch语句属于选择语句,其表达形式就像一个选择结构,大体的格式如下:
switch(表达式){//short、int、char
case 取值1:
执行语句1;
break;
case 取值2:
执行语句2;
break;
... ...
default:
默认执行语句;
break;

语法结构解读:
1、其中的“表达式”的结果以及case后的“取值”只能是3种类型:short、int和char;
2、两种结束switch语句的情况
1)遇到break,直接跳出选择;
2)执行到switch语句结束;
3、default语句不论放在哪个地方,它都是在没有匹配的情况下才会去执行,也就是说case无论在什么情况下都会比default先执行;
4、程序会按照顺序执行case的匹配,如果匹配的case语句或者default语句后没有对应的break来终止,那么程序还会继续向下执行匹配,执行匹配到的表达式,直到遇到brak或switch语句结束。
5、如果所有的case都没有匹配,则执行default里面默认的表达式

C语言 switch(0)后面的语句执行吗?

switch语句并不作判断,只是拿表达式的值去与case匹配,匹配成功,则顺序执行,直到break语句而跳出switch,全部匹配失败则执行default中的语句。switch(0)会去匹配
case
0的那个语句块。
如果default语句在前面(不是switch语句最后一条语句的话,且后面没有break)则要执行后面的case直到遇到break或者执行完毕。如果是最后一条语句,也就执行完了,跳出switch语句

c语言中switch语句怎么编写退出语句?

使用break语句使流程跳出(最后一个分支可以不用break语句)
default:
printf("input error! \n");
switch语句的一般格式如下:(解释见注释)
switch(a){ case xxx1: { ...... break; // 如果a = xxx1,则执行该语句块,加入break后就是当执行完该语句块后就退出switch,不执行后面的语句;如果不加break,就会执行后面的xxx2和default中的语句,知道遇到break后最后退出 } case xxx2: { ...... break; } default: { ...... }}

c语言 switch的用法

switch用在编程中,如C语言中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。
C语言程序语句switch语句的语法如下(switch,case和default是关键字):
switch ( controllingExpression )
{
case constantExpression1 :
case constantExpression2 :
case constantExpression3 :
statements;
//当满足constantExpression1、constantExpression2、constantExpression3任何一个都执行statements
break;
case constantExpression :
statements ;
break;
...
default :
statements ;
break;
}
扩展资料:
Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。
遵守switch语句规则
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
switch()的参数类型不能为实型 。
case标签必须是常量表达式(constantExpression),如42或者'4'。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
参考资料来源:百度百科-switch (计算机语言关键字)
凡是使用过的人都会有同样的感觉——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 语句与其它语言中相应语句的区别。 尽管在学习和教计算机语言的过程中, 我们始终认为语言是相通的, 这样便于学习一门新的语言。 但是真正要把某一门计算机语言学好, 非得掌握它的特点。 ---- 这里仅仅是自己在编程实践过程中的一点体会, 有错误的地方恳请批评指正。 希望对你有帮助!
case (c>=90 && c<=100):
case后面的必须是一个常量。
你这个可以先将成绩除以10,再用switch
#include "stdio.h"
void main()
{
char c; /*这里别用char,改成:int c,d;*/
scanf("%c",&c); /*这一句也改成scanf("%d",&c);最好前面再加一句,printf("请输入成绩:"); 在这句后面加一句d=c/10;*/
switch(c) /*然后switch里面用d来判断,switch(d)*/
{
case (c>=90 && c<=100):printf("成绩的等级为:A.\n");
break; /*改成: case (10):
case (9):printf("成绩的等级为:A.\n");break;
case (c>=80 && c<=89):printf("成绩的等级为:B.\n");
break; /*改成:case (8):printf("成绩的等级为:B.\n"); break;
}
}
因为90到100之间的数经过除以10再取整以后就变成了9;100/10等于10,又因为case调用同一个语句的时候允许就在最后一个语句写上那个语句,而将前面的那几个省略掉,所以case (10):后面的就省掉了,当然写上也不会错。
你的补充的那个,你可以把它分开表示,就像我给你弄的那个case (c>=90 && c<=100):printf("成绩的等级为:A.\n");
break; /*改成: case (10):
case (9):printf("成绩的等级为:A.\n");break;
虽然有点纠缠不清的感觉,但是希望对解决你的疑问有一定的帮助,呵呵。。。
执行case 2是因为在switch (x) 中x=1,所以执行case 1,然而case 1 这条语句没有break,所以switch (x)在执行了case 1之后将继续往下依次执行case语句,直到碰到break就跳出switch 循环。

阅读更多 >>>  任天堂switch会员有什么用

对于“a的自加是先执行后在自加,当此程序a自加的时候没有执行其他语句啊?????? ” 则是你没看到程序中的语句a++,b++它自加完了以后把值任然是赋值给a,b本身的,而不是赋值给其他变量例如c=a++;z=b++。如果是这样赋值给别的变量的话那么就很明确了c,z的值将和课本上说得一样都是自加以前的值 。也就是说这个程序当中最后printf输出的是a,b的值,但是a,b在自加过程中值都变化了,就是说相当于语句a=a++,b=b++.
我将你的程序进行了更改,你将两个程序都运行下然后再对照着看一下就明白为什么a,b的值最后是2和1了,程序如下
#include

main()

{

int x=1,y=0,a=0,b=0,c=0,z=0;

switch (x)

{case 1:

switch(y)

{

case 0:c=a++;break;

case 1:b++;break;

}

case 2: c=a++,z=b++;break;

case 3:a++,b++;

}

printf("c=%d,z=%d\n",c,z) ;

}

对于 ++i 和i++ 有什么区别?

简单而言: ++i在i 存储的值上增加一并向使用它的表达式“返回” 新的, 增加后的值; 而i++ 对i增加一, 但返回原来的是未增加的值。

语法:

switch(val)

{

case x:

//程序段1

break;

case y:

//程序段2

break;

case z:

//程序段3

break;

default:

//程序段4

}

首先,程序会用val的值与 x,y,z的值进行比较,如果等于其中某一个值,则程序跳转至该case执行程序,执行完后退出switch语句。例如等于x,则程序跳转到程序段2,然后退出switch。如果所有的case值都不相等,则执行default中的程序,例如上面的程序段4.

说明1:val的值应该为整数,case语句的个数可以很多,上面的x,y,z的值也是由你设定,但一定是一个常量

说明2:case语句里边的break别忘了,否则执行完该程序段后,会继续往下执行

执行过程:先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。

当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。

如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

单片机C语言,switch,case,break的含义,格式,用法

在C语言中break的意思就是执行到这一步下面的都不执行了。
比如从case 1开始执行,如果没break,则下面的语句都会执行,直到遇到下一个break或者当前代码块运行完毕。下面以学生管理系统的代码块为例。
int main(){
while(true){
int cmd;
printMenu();
scanf("%d",&cmd);
switch(cmd){
case 0:exit(0); break;
case 1:addAthlete();break;
case 2:alterAthelete();break;
case 3:searchAthlete();break;
case 4:printStudentList();break;
case 5:sortAthelete();break;
default:printf("非法命令\n");break;
}
}
return 0;
}
在上述代码中每选择case后就会执行函数,执行完后会结束这个case;但是不会结束程序,而在case0中exit(0)才会结束程序。
switch语句用于多分支选择, 其一般形式为:switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1;}其语义是:计算表达式的值。 并逐个与case后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行case后的语句,然后不再进行判断,继续执行后面所有case后的语句,直到遇到break或switch语句结束。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
break专用于跳出switch语句,break 语句只有关键字break,没有参数。
#include

int main(void){ int a; printf("input integer number: "); scanf("%d",&a); switch (a) { case 1:printf("Monday\n"); break; case 2:printf("Tuesday\n"); break; case 3:printf("Wednesday\n"); break; case 4:printf("Thursday\n"); break; case 5:printf("Friday\n"); break; case 6:printf("Saturday\n"); break; case 7:printf("Sunday\n"); break; default:printf("error\n"); } return 0;}

在使用switch语句时还应注意以下几点:

在case后的各常量表达式的值不能相同,否则会出现错误。

在case后,允许有多个语句,可以不用{}括起来。

各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

default子句可以省略不用。

switch语句的使用格式

1、首先打开C-Free5.0,然后一个空白的C语言页面保存为switch.c文件,继续输入一般的C语言的基础格式。
2、C语言的输入语句,首先定义一个整型数值,然后从外面写入这个值。#include

main(){int a;printf("请输入一个1-5之间的数值: ");scanf("%d",&a);}这里的scanf() 就是从外面读入一个值给a。

3、要看下输入的值是不是赋值给了a,可以把a的值输出,如下图调试。从下图可以得出,a的值就是输入的值。

4、接着按照获得的值来执行相应的步骤,代码如下图。

5、从系统中输入一个数值,然后switch根据读到的数值判断应该做什么,注意,输入的值必须是定义的值,就比如本程序里面switch里面是一开始定义的a.int a;printf("请输入一个1-5之间的数值: ");scanf("%d",&a);switch (a){}调试下程序,看看对不对。

网站数据信息

"c语言中的switch语句格式,c语言中switch怎么用?"浏览人数已经达到22次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:c语言中的switch语句格式,c语言中switch怎么用?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!