前言
分支结构在程序设计非常关键程序流程控制语句。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 编辑过