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 语句都可以包含一个
default
case,当没有其他 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.