C# - 嵌套 switch 语句
在 C# 中,嵌套 switch 语句是指在一个 switch 语句内部使用另一个 switch 语句。这在处理多级决策时非常有用。
可以将 switch 语句作为外部 switch 语句序列的一部分。即使内外 switch 的 case 常量包含相同的值,也不会发生冲突。
语法
以下是 C# 嵌套 switch 语句的语法 -
switch(ch1) {
case 'A':
Console.WriteLine("This A is part of outer switch" );
switch(ch2) {
case 'A':
Console.WriteLine("This A is part of inner switch" );
break;
case 'B': /* inner B case code */
}
break;
case 'B': /* outer B case code */
}
嵌套 switch 语句的使用规则
嵌套 switch 语句是指一个 switch 语句嵌套在另一个 switch 语句中。使用时请遵循以下一些简单规则:
- 每个
switch中的表达式必须是整数类型(例如,int、char)或枚举类型。 - 每个
switch可以包含多个 case 标签,并且 case 值必须与switch表达式的数据类型匹配。 - case 值必须是常量或字面量(例如,数字或字符)。 不允许使用变量作为 case 的值。
- 当 case 匹配时,该 case 中的代码将一直运行,直到遇到
break语句。 - 每个 case 都必须以
break语句 结束,以停止执行。缺少break将导致 编译时错误。 switch语句可以嵌套,这意味着一个switch语句可以放在case块中的另一个 switch 语句内。- 外部 switch 语句和内部 switch 语句都可以包含一个
defaultcase,当没有其他 case 匹配时运行该 case。
示例:嵌套 switch 语句的使用
在此示例中,我们将演示嵌套 switch 语句在 C# 中的工作原理 -
using System;
namespace DecisionMaking {
class Program {
static void Main(string[] args) {
int a = 100;
int b = 200;
switch (a) {
case 100:
Console.WriteLine("This is part of outer switch ");
switch (b) {
case 200:
Console.WriteLine("This is part of inner switch ");
break;
}
break;
}
Console.WriteLine("Exact value of a is : {0}", a);
Console.WriteLine("Exact value of b is : {0}", b);
Console.ReadLine();
}
}
}
Output
当编译并执行上述代码时,它会产生以下结果 -
This is part of outer switch This is part of inner switch Exact value of a is : 100 Exact value of b is : 200
示例:用于选择部门和角色的嵌套 Switch 语句
在此示例中,我们使用嵌套 Switch 语句来显示给定部门和角色时的角色和职责 -
using System;
public class Example {
public static void Main() {
// Define department
string department = "IT";
// Define Role
string role = "Manager";
switch (department) {
case "IT":
switch (role) {
case "Developer":
Console.WriteLine("IT - Developer: Responsible for coding.");
break;
case "Tester":
Console.WriteLine("IT - Tester: Ensures software quality.");
break;
case "Manager":
Console.WriteLine("IT - Manager: Oversees IT projects.");
break;
default:
Console.WriteLine("Invalid IT Role!");
break;
}
break;
case "HR":
switch (role) {
case "Recruiter":
Console.WriteLine("HR - Recruiter: Manages hiring.");
break;
case "Trainer":
Console.WriteLine("HR - Trainer: Conducts training sessions.");
break;
case "Coordinator":
Console.WriteLine("HR - Coordinator: Handles HR operations.");
break;
default:
Console.WriteLine("Invalid HR Role!");
break;
}
break;
case "Finance":
switch (role) {
case "Accountant":
Console.WriteLine("Finance - Accountant: Manages financial records.");
break;
case "Auditor":
Console.WriteLine("Finance - Auditor: Conducts financial audits.");
break;
case "Analyst":
Console.WriteLine("Finance - Analyst: Analyzes financial data.");
break;
default:
Console.WriteLine("Invalid Finance Role!");
break;
}
break;
default:
Console.WriteLine("Invalid Department!");
break;
}
}
}
Output
当编译并执行上述代码时,它会产生以下结果 -
IT - Manager: Oversees IT projects.

