前言
分支结构在程序设计非常关键程序流程控制语句。switch 语句充当控制结构,支持根据变量的值执行不同的代码块。当我们需要将变量与多个常量值进行比较,并根据结果执行各种操作时,switch 也是常用选择。本文探索C#中 switch case 的使用。
基本语法
switch (expression){ case value1: // 代码块 break; case value2: // 代码块 break; case value3: // 代码块 break; default: // 没有匹配的代码块 break;}
说明:
1、expression: 要检查的值或变量
2、case: 每个 case 标签都包含一个常量值,以便与表达式进行比较。
3、break: 终止 switch 块。没有中断,则进入下一个情况。
4、default: 可选项,如果没有任何 case 标签与表达式匹配,则执行此命令。
使用示例
using System.Text;
namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { int expression = 3; switch (expression) { case 1: Console.WriteLine("满足的条件是1"); break; case 2: Console.WriteLine("满足的条件是2"); break; case 3: Console.WriteLine("满足的条件是3"); break; default: Console.WriteLine("不在指定的条件范围"); break; } Console.ReadKey(); } }}
//执行结果为满足的条件是3
2、带字符串的 switch 示例
using System.Text;namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { string expression = "ZTO"; switch (expression) { case "ZTO": Console.WriteLine("承运商中通"); break; case "YTO": Console.WriteLine("承运商是圆通"); break; case "YUNDA": Console.WriteLine("承运商是韵达"); break; default: Console.WriteLine("不在指定的条件范围的承运商"); break; } Console.ReadKey(); } }}
//执行结果为承运商中通
3、 多个满足条件使用一个代码块
using System.Text;
namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { string expression = "CNZTO"; switch (expression) { case "CNZTO": case "JDZTO": Console.WriteLine("承运商是中通"); break; case "CNYUNDA": case "JDYUNDA": Console.WriteLine("承运商是韵达"); break; default: Console.WriteLine("不在指定的条件范围的承运商"); break; } Console.ReadKey(); } }}//执行结果为承运商中通
4、在case中使用 when 子句 【.NET Framework 4.7 以上】
.NET Framework 4.7 引入了模式匹配,由 when 关键字促进,允许在 switch 语句中合并更复杂的条件。using System.Text;
namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { int expression = 7; switch (expression) { case int n when (n >= 1 && n <= 10): Console.WriteLine("整数值在1与10之间"); break; case int n when (n > 10): Console.WriteLine("整数值大于10"); break; default: Console.WriteLine("整数值小于1"); break; } Console.ReadKey(); } }}//执行结果为整数值在1与10之间
5、switch表达式 【.NET Framework 4.8 以上版本】
.NET 5 引入了 switch 表达式,它比传统的 switch 语句更简洁。它们允许您使用模式匹配并从表达式返回一个值。using System.Text;
namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { int expression = 2; string result = expression switch { 1 => "满足的条件是1", 2 => "满足的条件是2", 3 => "满足的条件是3", _ => "不在指定的条件范围" }; Console.WriteLine(result); Console.ReadKey(); } }}//执行结果为满足的条件是1
6、enum 和 switch 一起使用
using System.Text;
namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { Operation operation = Operation.Subtract; int firstnum = 4; int secondnum = 3; switch (operation) { case Operation.Add: Console.WriteLine($"计算结果: {firstnum + secondnum}"); break; case Operation.Subtract: Console.WriteLine($"计算结果: {firstnum - secondnum}"); break; case Operation.Multiply: Console.WriteLine($"计算结果: {firstnum * secondnum}"); break; default: Console.WriteLine("无效操作"); break; } Console.ReadKey(); } } public enum Operation { Add, Subtract, Multiply }}//执行结果为计算结果: 1
7、使用元组模式的 Switch【.NET Framework 4.7 以上版本】
using System.Text;
namespace Fountain.WinConsole.SwitchDemo{ internal class Program { static void Main(string[] args) { string firstName = "叶凡"; string lastName = ""; (string firstName, string lastName) personDetail = (firstName,lastName);
switch (personDetail) { case ("虾米", "无"): Console.WriteLine($"您好, {firstName} {lastName}"); break; case ("叶凡", _): Console.WriteLine($"您好, {firstName}"); break; default: Console.WriteLine("您好, Unknown!"); break; } Console.ReadKey(); } }}//执行结果为您好, 叶凡
小结
以上通过多种使用示例,探索了switch语句使用方法。
该文章在 2024/10/24 8:58:27 编辑过