switch case的用法

作者&投稿:汝弯 (若有异议请与网页底部的电邮联系)
Switch case 语句怎么使用~

switch case用法详解:
1、switch是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。
2、switch是多分支选择语句。说得通俗点,多分支就是多个if。
从功能上说,switch语句和if语句完全可以相互取代。但从编程的角度,它们又各有各的特点,所以至今为止也不能说谁可以完全取代谁。
3、当嵌套的if比较少时(三个以内),用if编写程序会比较简洁。但是当选择的分支比较多时,嵌套的if语句层数就会很多,导致程序冗长,可读性下降。因此C语言提供switch语句来处理多分支选择。所以if和switch可以说是分工明确的。在很多大型的项目中,多分支选择的情况经常会遇到,所以switch语句用得还是比较多的。
4、switch的一般形式如下:
switch(表达式)
{
case常量表达式1:语句1
case常量表达式2:语句2

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

扩展资料:说明:
1)、switch后面括号内的“表达式”必须是整数类型。也就是说可以是int型变量、char型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float型变量、double型变量、小数常量通通不行,全部都是语法错误。
2)、switch下的case和default必须用一对大括号{}括起来。
3)、当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
再重申一下:switch是“选择”语句,不是“循环”语句。很多新手看到break就以为是循环语句,因为break一般给我们的印象都是跳出“循环”,但break还有一个用法,就是跳出switch。
4)、若所有的case中的常量表达式的值都没有与switch后面括号内“表达式”的值相等的,就执行default后面的语句,default是“默认”的意思。如果default是最后一条语句的话,那么其后就可以不加break,因为既然已经是最后一句了,则执行完后自然就退出switch了。
5)、每个case后面“常量表达式”的值必须互不相同,否则就会出现互相矛盾的现象,而且这样写造成语法错误。
6)、“case常量表达式”只是起语句标号的作用,并不是在该处进行判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
7)、各个case和default的出现次序不影响执行结果。但从阅读的角度最好是按字母或数字的顺序写。
8)、当然你也可以不要default语句,就跟if…else最后不要else语句一样。但最好是加上,后面可以什么都不写。这样可以避免别人误以为你忘了进行default处理,而且可以提醒别人switch到此结束了。

执行过程:

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

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

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



switch case的用法如下:

1、Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。直线翻译:switch语句,即“切换”语句;case即“情况”。

2、switch 语句一行接一行地执行(实际上是语句接语句)。开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时 php 才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句为止。如果不在 case 的语句段最后写上 break 的话,php 将继续执行下一个 case 中的语句段。

3、在 switch 语句中条件只求值一次并用来和每个 case 语句比较。在 elseif 语句中条件会再次求值。如果条件比一个简单的比较要复杂得多或者在一个很多次的循环中,那么用 switch 语句可能会快一些。

4、switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。

扩展资料:

在C#中,switch语句的控制表达式只能是某个整形(int,char,long等)或string。其他任何类型(包括float和double类型)只能用if语句。

每个constantExpression值都必须唯一,使controllingExpression只能与它们中的一个匹配。如果controllingExpression的值和任何controllingExpression的值都不匹配,也没有default标签,程序就从switch的结束大括号之后的第一个语句继续执行。

参考资料来源:百度百科-switch



switch (x/1000)
{
case 0:
cout << x << endl;
break;
case 1:
cout << x * 0.9 << endl;
break;
}

说明:
switch语句的执行
1,对switch中的控制表达式进行求值。这里是对x/1000求值,如果0<=x<1000,求值结果为0,如果1000<=x<2000,结果为1

2,根据控制表达式的求值结果,跳转到相应的case入口,向后执行。注意是向后执行到整个switch语句之外,而不是只执行这一个case中包括的语句。通常只需要执行一个case语句,这需要通过goto,return,break,continue等语句来转移到switch之外。这里用的是break语句,如果把第一个break去掉,而的范围又在0-1000之间,这时不但会输出x,还会执行下一个case语句,输出 0.9*x。

3,如果控制表达式的求值结果不等于任何的case入口,则会转移到default语句(如果有的话,没有就结束了)。比如这里还可以加入一个default语句来处理x<0或x>2000的情况
default:
cout << "你输入的数据不合法 " << endl;
break;
注意,default,不一定要放在所有的case语句之后,也可以放中间或开始的,但通常都放最后,比较符合习惯,所以如果放最后break可以省略。同理上面程序中的第二个break可以省略,但是这不是一个好的编程习惯,假如你在以后要在程序中加入一个 case 2的话,就很可能会把break可忘了。

其实default可以看成一个特殊的case语句,它的用法和case是一样,只是它能匹配所有case入口之外的其余情况。

PS: 我所有的百度知道回答都是自己手工输入,认真回答的,不是胡乱粘贴的。满意的话给个最佳吧

C/C++中switch-case用法归纳

if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且理解也比较困难.深层嵌套的else-if语句往往在语法上是正确的,但逻辑上却没有正确地反映程序员的意图。例如,错误的else-if匹配很容易被忽略。添加新的条件和逻辑关系,或者对语句做其他的修改,都很难保证正确性。因此,C/C++语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.它可以很方便地来实现深层嵌套的if/else逻辑。

使用switch语句直接处理多个分支(当然包括两个分支).其一般形式为:

switch(表达式)

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

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

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

default:
语句n+1;
break;
}

switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句.

以上是switch-case的正规写法,default语句总是写在最后。但是,如果把default语句间在了case的中间,执行的结果又是怎样的呢?笔者测试了一下几种有代表性的情况,把结果简单罗列如下:

A. 每个语句中break齐整
switch(c)
{
case '1': 
printf("1
");
break;
default: 
printf("default
");
break;
case '2':
printf("2
");
break;
case '3':
printf("3
");
break;
}


此种情况最为规整,default写在中间跟写在最后的效果一致。

B. default语句后没有break
switch(c)
{
case '1': 
printf("1
");
break;
default: 
printf("default
");
// break;
case '2':
printf("2
");
break;
case '3':
printf("3
");
break;
}
此种情况下,输入分别为 1、 2、 3、 4,对应的输出分别为 1、 2 、3、 default 2(换行省略了,实际运行时有换行的);即此种情况下遵循A中的执行顺序和一般的标号规则。

C. 最后一个case没有break
switch(c)
{
case '1': 
printf("1
");
break;
default: 
printf("default
");
break;
case '2':
printf("2
");
break;
case '3':
printf("3
");
// break;
}
此种情况下,输入分别为 1、 2、 3、 4,对应的输出分别为1、2、3、default.可见实际的运行效果并不等同于把default语句挪到最后的运行效果。否则,输入为3时,输出应该为 3 default.

D. default和最后一个case都没有break
switch(c)
{
case '1': 
printf("1
");
break;
default: 
printf("default
");
// break;
case '2':
printf("2
");
break;
case '3':
printf("3
");
// break;
}
由上面A,B,C三种情况的运行结果,我们可以推测出D这种情况的运行结果。当输入分别为 1、2、3、4时,输出为1、2、3、default 2. 结果与B的情况相同。


关于java中switch使用的一些说明

switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}
default就是如果没有符合的case就执行它,default并不是必须的.
case后的语句可以不用大括号.
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.

例如:

switch(x)

{

case 1:

case 2:

case3: System.out.println("haha");

break;

case4: System.out.println("hehe");

}


汉阳区15292795916: switch case的用法,最好详细介绍一下 -
危虾阿司: switch(变量) {case 值1:语句1;break;case 值2:语句2;break;case 值3:语句3;break;default: 语句4;break;//默认值,变量值不在case里 }

汉阳区15292795916: switch case语句怎么用 -
危虾阿司: switch(判断条件) { case '结果一': 操作一;break; case '结果二': 操作二;break; .... default:操作n;break; } 表示判断一下条件,如果结果为'结果一'则执行操作一 如果没有满足的则执行操作n break表示执行完相应操作后退出switch语句,不加break的话会继续执行操作二...

汉阳区15292795916: c语言,求教switch case 语句用法,谢谢! -
危虾阿司: 这里 a>0 表示一个布尔运算,其值要么为真要么为假. 在C语言中,一般将真转换成整数1,假转换成整数0. 所以 a>0的结果有 0 和 1两种情况.switch 圆括号中可以是能够转换成整型的表达式,例如,常见的 整数int,字符型char等. case 1: case 'A': 这两种是比较常见的格式.

汉阳区15292795916: switch case 怎么用 -
危虾阿司: a=a/10; switch(a) { case 0: case 1: case 2:m=1; case 3:m=2;break; case 4:m=3;break; case 5:m=4;break;default:m=; }

汉阳区15292795916: C语言中switch case用法 -
危虾阿司: 这个其实很简单,你可以转化一下,用分数除以10,那样就是一个范围啊,像这样score/10

汉阳区15292795916: c++ switch case 的用法 -
危虾阿司: switch (x/1000) {case 0:cout << x << endl;break;case 1:cout << x * 0.9 << endl;break; }说明: switch语句的执行 1,对switch中的控制表达式进行求值.这里是对x/1000求值,如果0<=x<1000,求值结果为0,如果1000<=x<2000,结果为...

汉阳区15292795916: switch case语句是什么意思 -
危虾阿司: switch case语句是判断语句. switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.

汉阳区15292795916: 求助:C/C++中switch case的用法! -
危虾阿司: switch语法格式如下:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2; …case 常量表达式n: 语句n; default: 语句n+1; } 示例代码:#include int main() { int a; printf("input integer number: "); scanf("%d",&a); ...

汉阳区15292795916: java中switch case什么情况用 -
危虾阿司: if-else就像一个1V1的开关但是可以在else这头再串联if-else开关 switch-case是一个1VN的开关,根据switch()中的变量的不同值,用case转换 比如要根据一个变量的状态来执行不同语句用switch-case略简单 但是要根据多个变量时最好还是if-else去嵌套

汉阳区15292795916: 使用switch..case语句时需要注意什么?尽可能多的去写. -
危虾阿司:[答案] 格式: switch(要判断的变量名) { case:break; case:break;(这个可以不加) }要特别注意case语句要加break!不加break的后果就是会执行下一个case语句!这一点千万要注意!当然,也可以利用这一点实现多条件同结果的程序! 还有,case语...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网