前言
分支結構在程序設計非常關鍵程序流程控制語句。switch 語句充當控制結構,支持根據(jù)變量的值執(zhí)行不同的代碼塊。當我們需要將變量與多個常量值進行比較,并根據(jù)結果執(zhí)行各種操作時,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 標簽與表達式匹配,則執(zhí)行此命令。
使用示例
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();
}
}
}
//執(zhí)行結果為
滿足的條件是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();
}
}
}
//執(zhí)行結果為
承運商中通
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();
}
}
}
//執(zhí)行結果為
承運商中通
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("整數(shù)值在1與10之間");
break;
case int n when (n > 10):
Console.WriteLine("整數(shù)值大于10");
break;
default:
Console.WriteLine("整數(shù)值小于1");
break;
}
Console.ReadKey();
}
}
}
//執(zhí)行結果為
整數(shù)值在1與10之間
5、switch表達式 【.NET Framework 4.8 以上版本】
.NET 5 引入了 switch 表達式,它比傳統(tǒng)的 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();
}
}
}
//執(zhí)行結果為
滿足的條件是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
}
}
//執(zhí)行結果為
計算結果: 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();
}
}
}
//執(zhí)行結果為
您好, 葉凡
小結
以上通過多種使用示例,探索了switch語句使用方法。
該文章在 2024/10/24 8:58:27 編輯過