C# Switch语句教程 - Switch表达式、模式匹配与高级用法
全面掌握C# Switch语句:从基础语法到C# 8.0高级特性,详解switch表达式、模式匹配、与if-else性能对比及最佳实践,包含实际应用示例
什么是Switch语句?
Switch语句是C#中用于多分支条件判断的重要控制结构,它提供了一种比多个if-else语句更清晰、更高效的方式来处理基于不同值的决策逻辑。
使用 switch 语句用于根据多个不同条件执行不同动作。
为什么选择Switch而不是If-Else?
- 代码可读性 - 当条件分支较多时,switch语句比嵌套的if-else更易读和维护
- 性能优势 - 在某些情况下,switch语句比多个if-else判断性能更好
- 结构清晰 - switch提供了更清晰的代码结构,便于调试和维护
- 8.0+ 增强 - 现代C#版本为switch添加了模式匹配和表达式等强大功能
基础Switch语句语法
让我们从传统的switch语句开始,理解其基本结构和工作原理。
语法
switch(expression)
{
case x:
// 代码块
break;
case y:
// 代码块
break;
default:
// 代码块
break;
}
工作原理:
switch表达式计算一次- 将表达式的值与每种情况
case的值进行比较 - 如果存在匹配项,则执行关联的代码块
break和default关键字将在本章后面介绍
下面的示例使用工作日编号来计算工作日名称:
实例
int day = 4;
switch (day)
{
case 1:
Console.WriteLine("Monday");
break;
case 2:
Console.WriteLine("Tuesday");
break;
case 3:
Console.WriteLine("Wednesday");
break;
case 4:
Console.WriteLine("Thursday");
break;
case 5:
Console.WriteLine("Friday");
break;
case 6:
Console.WriteLine("Saturday");
break;
case 7:
Console.WriteLine("Sunday");
break;
}
// 输出 "Thursday" (day 4)
执行流程分析:
- 计算switch表达式(day = 4)
- 将表达式的值与每个case的值进行比较
- 找到匹配项(case 4)
- 执行匹配的代码块
- 遇到break语句,跳出switch块
break 关键词
当 C# 到达 break 关键字时,它会跳出 switch 块。
这将停止在块内执行更多代码和案例测试。
当找到匹配项,工作完成后就结束。没有必要进行更多的测试。
break 中断可以节省大量执行时间,因为它忽略"switch"中所有其余代码的执行。
default 关键词
default 关键字是可选的,并指定在没有大小写匹配时默认要运行的一些代码:
实例
int day = 4;
switch (day)
{
case 6:
Console.WriteLine("Today is Saturday.");
break;
case 7:
Console.WriteLine("Today is Sunday.");
break;
default:
Console.WriteLine("Looking forward to the Weekend.");
break;
}
// 输出 "Looking forward to the Weekend."

