C# Switch 语句
介绍
在 C# 编程中,switch
语句是一种用于根据变量的值执行不同代码块的控制流语句。它通常用于替代多个 if-else
语句,使代码更加简洁和易读。switch
语句特别适合处理多个固定值的条件判断。
基本语法
switch
语句的基本语法如下:
csharp
switch (expression)
{
case value1:
// 当 expression 等于 value1 时执行的代码
break;
case value2:
// 当 expression 等于 value2 时执行的代码
break;
// 可以有任意数量的 case 语句
default:
// 当 expression 不匹配任何 case 时执行的代码
break;
}
expression
是一个表达式,通常是一个变量或常量。case
关键字后面跟着一个值,如果expression
的值与case
的值匹配,则执行该case
下的代码块。break
语句用于退出switch
语句。如果没有break
,程序会继续执行下一个case
的代码块(称为“贯穿”)。default
是可选的,用于处理expression
不匹配任何case
的情况。
代码示例
以下是一个简单的 switch
语句示例,根据用户输入的数字输出对应的星期几:
csharp
int day = 3;
string dayName;
switch (day)
{
case 1:
dayName = "星期一";
break;
case 2:
dayName = "星期二";
break;
case 3:
dayName = "星期三";
break;
case 4:
dayName = "星期四";
break;
case 5:
dayName = "星期五";
break;
case 6:
dayName = "星期六";
break;
case 7:
dayName = "星期日";
break;
default:
dayName = "无效的日期";
break;
}
Console.WriteLine(dayName);
输出:
星期三
贯穿(Fall-through)
在某些情况下,你可能希望多个 case
共享相同的代码块。这时可以使用贯穿(fall-through)的方式,即省略 break
语句。但需要注意的是,C# 不允许隐式的贯穿,必须显式地使用 goto case
或 goto default
。
csharp
int number = 2;
string result;
switch (number)
{
case 1:
case 2:
case 3:
result = "数字在 1 到 3 之间";
break;
case 4:
case 5:
result = "数字在 4 到 5 之间";
break;
default:
result = "数字不在 1 到 5 之间";
break;
}
Console.WriteLine(result);
输出:
数字在 1 到 3 之间
实际应用场景
switch
语句在实际开发中有很多应用场景,例如:
- 菜单选择:在命令行应用程序中,根据用户选择的菜单项执行不同的操作。
- 状态机:在游戏开发中,根据角色的状态(如“站立”、“行走”、“攻击”)执行不同的逻辑。
- 错误处理:根据不同的错误代码执行不同的错误处理逻辑。
以下是一个简单的菜单选择示例:
csharp
Console.WriteLine("请选择一个选项:");
Console.WriteLine("1. 开始游戏");
Console.WriteLine("2. 加载游戏");
Console.WriteLine("3. 退出");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
Console.WriteLine("游戏开始!");
break;
case 2:
Console.WriteLine("加载游戏中...");
break;
case 3:
Console.WriteLine("退出游戏。");
break;
default:
Console.WriteLine("无效的选择。");
break;
}
总结
switch
语句是 C# 中一种强大的控制流工具,特别适合处理多个固定值的条件判断。通过 switch
语句,你可以使代码更加简洁、易读,并且减少重复的 if-else
语句。
提示
在使用 switch
语句时,记得在每个 case
块末尾添加 break
语句,以避免意外的贯穿行为。如果你确实需要贯穿,可以使用 goto case
或 goto default
。
附加资源与练习
- 练习:编写一个
switch
语句,根据用户输入的温度范围输出不同的天气描述(如“寒冷”、“凉爽”、“温暖”、“炎热”)。 - 进一步学习:了解 C# 7.0 引入的模式匹配功能,它扩展了
switch
语句的功能,使其可以处理更复杂的条件。
通过不断练习和探索,你将能够熟练运用 switch
语句来处理各种复杂的条件判断场景。