C# - Switch 语句
C# switch case 语句是一种控制流结构,它允许我们根据变量的值执行不同的代码块,方法是将变量的值与多个可能的 case 值进行比较。
我们可以说,它允许将变量与一系列值进行比较,以判断其是否相等。每个值称为一个 case,并且会针对每个 switch case 检查被切换的变量。
语法
以下是 C# switch 语句的语法 -
switch(expression) { case constant-expression1 : statement(s); break; case constant-expression2 : case constant-expression3 : statement(s); break; /* 你可以有任意数量的 case 语句 */ default : /* 可选 */ statement(s); }
switch 语句使用规则
以下规则适用于 switch 语句 -
switch 语句中使用的 表达式 必须是整型或枚举型,或者是一个类类型,且该类具有一个到整型或枚举型的转换函数。
一个 switch 语句中可以包含任意数量的 case 语句。每个 case 后面都跟着要比较的值和一个冒号。
case 的 常量表达式 必须与 switch 中的变量具有相同的数据类型,并且必须是常量或字面量。
当 switch 中的变量等于某个 case 时,该 case 后面的语句将一直执行,直到遇到 break 语句。
当遇到 break 语句时,switch 终止,控制流跳转到 switch 语句后的下一行。
并非每个 case 都需要包含 break。如果没有出现 break,则会引发编译时错误。
switch 语句可以包含可选的 default case,该 case 必须出现在 switch 的末尾。默认情况可用于在所有情况都不成立时执行任务。
流程图

示例:理解 switch 语句
在此 C# 程序中,我们构建了一段代码来演示 switch 语句的用法 -
using System; namespace DecisionMaking { class Program { static void Main(string[] args) { /* 局部变量定义 */ char grade = 'B'; switch (grade) { case 'A': Console.WriteLine("Excellent!"); break; case 'B': case 'C': Console.WriteLine("Well done"); break; case 'D': Console.WriteLine("You passed"); break; case 'F': Console.WriteLine("Better try again"); break; default: Console.WriteLine("Invalid grade"); break; } Console.WriteLine("Your grade is {0}", grade); Console.ReadLine(); } } }
Output
当编译并执行上述代码时,它会产生以下结果 -
Well done Your grade is B
示例:显示星期几
在此示例中,我们使用 switch case 语句,如果给定了整数值,则显示星期几 -
using System; public class Example { public static void Main() { int day = 5; switch (day) { case 1: Console.WriteLine("Sunday"); break; case 2: Console.WriteLine("Monday"); break; case 3: Console.WriteLine("Tuesday"); break; case 4: Console.WriteLine("Wednesday"); break; case 5: Console.WriteLine("Thursday"); break; case 6: Console.WriteLine("Friday"); break; case 7: Console.WriteLine("Saturday"); break; default: Console.WriteLine("Invalid input! Please enter a number between 1 and 7."); break; } } }
输出
以下是输出 -
Thursday