C# switch case 语句也是条件语句的一种,与上一节介绍的《C# if else语句》是类似的,但在判断条件的选择上会有一些局限性。
switch(表达式)
{
case 值 1:
语句块 1;
break;
case 值 2:
语句块 2;
break;
...
default:
语句块 n;
break;
}
在这里,switch 语句中表达式的结果必须是整型、字符串类型、字符型、布尔型等数据类型,即参数必须是sbyte、byte、short、ushort、int、uint、long、ulong、char、string、bool或者枚举类型中的一种。
如果 switch 语句中表达式的值与 case 后面的值相同,则执行相应的 case 后面的语句块。如果所有的 case 语句与 switch 语句表达式的值都不相同,则执行 default 语句后面的值,语句块执行完毕后,执行break,使程序跳出switch语句。如果条件都不满足,则执行default中的语句块。
- case 语句后面的各常量值是不能重复的,且不可以是浮点类型的。
- case后面的语句块可以有多条语句,不必适用大括号括起来。
- case语句和default语句的顺序可以改变,这不影响程序执行的结果。
- 一个switch语句中只能有一个default语句,而且default语句可以省略。
尽管c#不允许从一个分支直接进入到另一个分支,但是可以把多个分支标签附加到任意分支,只要这些分支标签之间没有插入可以执行语句。如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _20220731_2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine();
string strNum = Console.ReadLine();
switch(strNum)
{
case "1":
case "2":
case "3":
Console.WriteLine("111");
break;
default:
Console.WriteLine("000");
break;
}
Console.ReadKey();
}
}
}
switch语句与if…else if…else语句的区别
if…else if…else语句可以处理多分支选择的情况,但是它主要是对布尔表达式、关系表达式或逻辑表达式进行判断的,而switch分支语句主要对常量值进行判断。
如果在程序开发中,如果遇到多分支选择的情况,并且判断条件不是关系表达式、逻辑表达式或浮点类型,就可以使用switch语句,这样效率会更高一些。
版权声明:本文为qq_45336030原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。