百度
360搜索
搜狗搜索

switch语句怎么执行,C语言里的switch语句怎么用,最好有例子哈~!详细介绍

本文目录一览: switch怎么 详解switch语句的使用方法?

switch语句是一种多分支选择结构,通常用于根据某个变量的不同取值,执行不同的代码块。以下是详解switch语句的使用方法:
switch语句的基本语法
switch语句的基本语法如下:
其中,expression是一个变量或表达式,用于指定要比较的值,case后面的constant是一个常量表达式,用于和expression进行比较。如果expression的值等于某个case后面的常量值,就会执行相应的statement语句,直到遇到break语句为止。如果expression的值不等于任何一个case后面的常量值,就会执行default语句,如果没有default语句,则什么也不做。
switch语句的使用注意事项
每个case后面必须跟一个break语句,否则程序会继续执行下一个case的语句,直到遇到break为止。
case后面的常量值必须是整数或字符类型,不能是浮点数或字符串类型。
switch语句中的expression和case后面的常量值的类型必须一致。
default语句可以放在任何位置,但通常放在最后面。
如果多个case后面的常量值相同,可以省略break语句,这样程序会依次执行这些case的语句,直到遇到break为止。
switch语句的示例代码
下面是一个简单的switch语句示例,根据用户输入的数字,输出相应的星期几:
在上面的示例代码中,用户输入一个数字(1-7),程序根据这个数字输出相应的星期几。如果用户输入的数字不在1-7范围内,则会输出“输入错误”。

switch语句

在C语言中,switch语句是开关语句,一般与case、break、default配合使用,对流程进行控制。
switch ( 变量表达式 ),C规定:如果case或default语句结束后没有break,则继续执行下面的语句,直到遇到break语句才跳出switch。
当常量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句并跳出switch语句。
遵守switch语句规则
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
switch()的参数类型不能为实型 。
case标签必须是常量表达式(constantExpression),如42或者'4'。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。
Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。
直线翻译:switch语句,即“切换”语句;case即“情况”。
switch语句的语法如下(switch,case,break和default是关键字):
switch ( 变量表达式 )
{
case 常量1 :语句;break;
case 常量2 :语句;break;
case 常量3 :语句;break;
...
case 常量n:语句;break;
default :语句;break;
}
switch语句注意事项:
switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。
break语句是必须有的,它用来结束switch语句的执行。如果所有case语句后面的表达式都不等于switch语句的表达式expr1的值川0执行default后面的默认语句序列。不过,default部分是可选的。如果没有这一部分,并遇到所有case语句都不匹配,那么,就不作任何处理而进入后续程序段的执行。
可见,一个switch语句可以代替多个if-else语句组成的分支结构,而switch语句从思路上显得更清晰。
使用switch语句时,要注意expr1必须是符合byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,//(也不能为一个字符串)。 (jdk7后,允许String)
这个想法很巧妙,呵呵。
不能测试关系和逻辑表达式的意思是你不能这么写
switch()
{
case <10:printf("@"); break;
case >=10:printf("!"); break;
}
因为case必须接常量表达式。
不过你这个程序巧妙地把判断做成了一个布尔逻辑式放到了switch里。我遇到这样肯定if去了,想不到这么高明的写法的。
Switch(A)
case a:
case b:
....
Switch 判断A这个表达式的值与下列a,b,...是否相等。相等则执行。
a>0,b<10是表达式 。成立则这个表达式的值也就是A为1,否则为0.
与a,b等比较是否相等。
可以这样使用,不过有些编译器会有警告信息.
执行过程:先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。
当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。
如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

switch语句的运用

你这个程序是错误使用switch。switch是多分支语句,不是像if那样只有true和false。switch后面的括号中一般放整数,而不是一个条件,然后根据这个整数来匹配后面case中的值,如果匹配成功,则运行case中的语句,否则运行default中的语句。
另外,switch、case、printf都是小写字母。
你的程序可改成下面的样子,好好体会一下:
void main()
{int a=2,b=7,c=5;
switch(a)
{case 1:switch(b)
{case 1:printf(“@”); break;
case 2: printf(“!”); break;
}
break; //要有break,否则会一直往下执行。
case 0: switch(c)
{ case 0: printf(“*”); break;
case 1: printf(“#”); break;
case 2: printf(“$”); break;
}
break;//要有break,否则会一直往下执行。
default : printf(“&”);
break; //最好default也加上个break。
}
printf(“\n”);
}
你能得出"&"的结果已经很接近了。
Switch(a>0)
进入case 1:什么都没输出,而且也没有break;
接着Case 0:( 输出 printf(“#”); break;)case 0 也没有break
然后再default : printf(“&”);
结果就是 #&
明白否
要在每个case语句后加break,像这样:
main()
{int a=2,b=7,c=5;
switch(a>0)
{case 1:switch(b<0)
{case 1:printf("@"); break;
case 2: printf("!"); break;
}break;
case 0: switch(c==5)
{ case 0: printf("*"); break;
case 1: printf("#"); break;
case 2: printf("$"); break;
}break;
default : printf("&");
}
printf("\n");
}
这样的运行结果是什么都没有,因为程序只会执行case 1中的语句
错误不少啊!!!
输出#&
执行过程:先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。
当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。
如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

c语言中switch怎么使用

1、在switch语句的每个语句段中都使用break语句。有default时,如果表达式的值与任何一个常量表达式的值都不想等,则执行default后面的语句段。如果省略了default,那么当表达式的值与任何一个常量表达式的值都不相等时,就什么都不执行。2、在switch语句中不使用break语句。在这种情况下,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后面的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的所有语句段。3、在switch语句的某些语句段中使用break语句。

c语言switch语句如何使用

C语言的运用非常之多,它兼顾了高级语言的汇编语言的优点,相较于其它编程语言具有较大优势。那么C语言中的switch语句如何使用呢?

C语言switch语句如何使用 switch语句允许测试变量与值列表的相等性,每个值称之为案例或者case,程序会检查switch后面的值并且与case后面的值比对,如果相等则执行后面的代码或代码块。
switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型;
switch可以任意个case语句(包括没有), 值和语句之间使用:分隔;
case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过。
当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块,但是break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出。
switch还有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句。
C语言基本构成 数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
字符串
C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件

c语言中switch怎么用?

简单的说switch语句也是属于判断语句,if else语句适合3个以内的判断,但是多了用if就不太方便了,所以这时3个以上的判断用switch语句就比较方便了,结构就像楼上的兄弟们那样写的,大概怎么用我举个例子你就懂了。
例:判断一周的食谱,就是星期几的食谱是什么,首先一个星期7天,那么判断七次,用switch语句写法如下:
#include

void main(){

int a;//定义变量用于开辟1到7的数字即一星期的天数。

printf("看看星期几的食谱是什么?");

scanf("%d",&a);

switch(a)//开始判断1-7的食谱。

{

case 1:printf("星期一吃水果\n");

break;//结束语句,判断这天后提示完就不执行下面的语句了,否则逻辑错误。

case 2:printf("星期二吃蔬菜\n");

break;

case 3:printf("星期三吃火锅\n");

break;

case 4:printf("星期四吃米饭\n");

break;

case 5:printf("星期五吃西餐\n");

break;

case 6:printf("星期六吃米饭\n");

break;

case 7:printf("星期天吃满汉全席\n");

break;

default:printf("请输入正确的日期\n");//default语句类似else,如果不输入1到7的正确日期就显示这个语句。

break;}

}

扩展资料

if 语句:“如果”语句;if—else 语句:“若?(则)?否则?”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。

跳转结构

return:用在函数体中,返回特定值(如果是void类型,则不返回函数值)。(K&R时期引入)

continue:结束当前循环,开始下一轮循环。(K&R时期引入)

break:跳出当前循环或switch结构。(K&R时期引入)

goto:无条件跳转语句。(K&R时期引入)

分支结构

if:条件语句,后面不需要放分号。(K&R时期引入)

else:条件语句否定分支(与if连用)。(K&R时期引入)

switch:开关语句(多重分支语句)。(K&R时期引入)

case:开关语句中的分支标记,与switch连用。(K&R时期引入)

default:开关语句中的“其他”分支,可选。(K&R时期引入)

参考资料:百度百科 c语言

阅读更多 >>>  二级c语言难吗,计算机二级C语言好过吗?

c语言switch case语句怎么用?

c语言switch case语句例子是:
#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;

程序解读:
本程序是要求输入一个数字,输出它对应的星期的英文单词。
注意项:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case后,允许有多个语句,可以不用{}括起来。
3、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4、default子句可以省略不写。

简述switch语句的执行过程?

switch (parm){
case :
default
}
先拿来parm,挨个跟case比对,有符合的就执行case里的语句,没有匹配的就执行default里的语句。一般情况下case后面的语句都要跟一个break,否则一直执行下去。
switch 中属于条件,case 属于 判断条件 若满足 执行 ,否则 一直向下判断,注意case 后必须要有break 结束,否则的话,即使满足条件还是继续执行,直达最后,都没有满足条件的话,执行default语句,(这个可要也可不要)。
switch (parm){
case :
default
}
顺序执行,条件满足(也就是常量表达式1与表达式相等),执行语句1,遇到break则立刻跳出switch语句,如shu果没有遇到break,则继续往下执行,条件满足(也就是常量表达式1与表达式相等),执行语句1,遇到break则立刻跳出switch语句,以此类推。
扩展资料:
当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果变量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句。
遵守switch语句规则
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
switch()的参数类型不能为实型 。
参考资料来源:百度百科-switch

C语言里的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 语句与其它语言中相应语句的区别。 尽管在学习和教计算机语言的过程中, 我们始终认为语言是相通的, 这样便于学习一门新的语言。 但是真正要把某一门计算机语言学好, 非得掌握它的特点。 ---- 这里仅仅是自己在编程实践过程中的一点体会, 有错误的地方恳请批评指正。 希望对你有帮助!

阅读更多 >>>  switchlite和switch区别

网站数据信息

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