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

