1、C#的switch-case语句使用示例:
int week = 5;
switch (week)
{
case 1: break; //变量week的值为1,不做任何处理,结束switch语句
case 2:
case 3:
case 4:
case 5:
Console.WriteLine("今天是工作日");//当变量week的值为2,3,4,5中任意一个值时,由于其后没有关键字"break",所以会顺序执行到输出语句
break; //结束switch语句
case 6:
case 7:
Console.WriteLine("今天是休息日");//同理
break;
defalut:
Console.WriteLine("无效的输入值");
break;
}
2、C#的switch语句的语法如下:
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
其中,switch、case、default和break是关键字。
3、遵守switch语句规则:
只能针对基本数据类型使用switch,这些类型包括int和string等待。对于其他类型,则必须使用if语句。
case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
可以连续写下一系列case标签(中间不能间插额外的语句),从而指定自己希望在多种情况下都运行相同的语句。如果像这样写,那么最后一个case标签之后的代码将适用于所有case。然而,假如一个标签关联了一个或多个语句,又没有使用break来跳出,那么执行就不能贯穿到后续的标签,而且编译器会报告一个错误。
扩展资料:
C#三元运算符
C#中有一个三元运算符“?:”,语法为:条件表达式?表达式1:表达式2;
该操作首先求出条件表达式的值(bool类型),为true时调用表达式1,为flase时调用表达式2。其逻辑为:“如果为真执行第一个,否则执行第二个。”
例如:
a=3>4?3:4;输出为4。
a=3<4?3:4;输出为3。
参考资料:
Microsoft Docs.switch
switch 是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch 是多分支选择语句。说得通俗点,多分支就是多个 if。
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、不是所有case语句最后都跟有break。起初见到的代码里,基本上每个case最后都跟有break,它是指当switch后面括号里的表达式与哪一个case后面的常亮表达式匹配时,直接进入这个case,执行完里面的语句后,遇到break,直接退出整个switch case语句。
实际当中,还会碰到类似于上述代码的情况(不是所有case语句最后都跟有break),这个时候,程序总是从匹配的case执行,直到遇到break或者程序走到最后的default结束,退出switch case语句。
2、switch后面括号里的结果必须是整形值。因为这个值是要和case语句后面直接跟的常量表达式进行匹配的。
3、break在switch case语句中主要是将语句划分成不同的部分,方便匹配后跳出switch语句。
4、default的位置并不是固定的。为了使程序正常运行,它放在case之间的时候,后面必须跟上break语句;如果放在最后,可以跟break语句,也可以不跟。
参考资料:
百度百科——switch
switch case语句适用于从一组互斥的分支中选择一个执行分支。
值得注意的就是case的值必须是常量表达式不允许是变量。
C#中的switch case语句更安全,如果激活块中靠前的一个case子句,后面的case子句就不会被激活(除非使用goto语句、但不建意使用)。
注意switch case语句有一种例外情况,如果一个case子句为空,就可以从这个case跳到下一个case上,这样就可以用相同的方式处理两个或多个case子句(不再需要goto语句)。
在C#中,switch语句的一个有趣的地方是case子句的排放更灵活,甚至可以将default子句放在最前面(因为任何两个case都不能相同)。
关键代码如下:
switch(变量)
{
case '条件一': 要执行的代码 break;
case '条件二': 要执行的代码 break;
default : 要执行的代码 break;
}
变量=5,条件一=3>5,不正确,不执行,跳出(break)
条件二=7>5,正确,执行,跳出(break)
如果条件一和条件二都不符合,则默认执行default,然后跳出
C#的switch语句的语法如下(switch,case和default是关键字):
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
controllingExpression(控制表达式)只求值一次。然后,从其constantExpression值等于controllingExpression值的case开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。
假如任何一个constantExpression值都不等于controllingExpression的值,就运行可选标签default之下的语句。
注意 假如controllingExpression的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。
遵守switch语句规则
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型使用switch,这些类型包括int和string等待。对于其他类型,则必须使用if语句。
case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
注意 break语句是用来阻止贯穿的最常见的方式,但也可以用一个return语句或者一个throw语句来替代它。