一個switch語句允許使用一個變數測試來相對於一個值的列表。每個值都稱為一種情況(case),並且每個switch情況都檢查是否匹配變數的值。
語法
C# 中的switch語句的語法如下:
switch(expression) {
case constant-expression :
statement(s);
break; /* optional */
case constant-expression :
statement(s);
break; /* optional */
/* you can have any number of case statements */
default : /* Optional */
statement(s);
}
以下規則適用於switch語句:
switch語句中使用的運算式(expression)必須具有一個整數或枚舉類型,或者是類類型,該類具有單個轉換函數為整數或枚舉類型。- 可以在
switch語句內有任意數量的case語句。 每個case語句後跟要比較的值和冒號。 case語句中的常量運算式必須與switch中變數的數據類型相同,它必須是常量或字面值。- 當接通的變數等於其中一個
case語句中的值時,這個case語句中代碼塊將被執行,直到達到break語句。 - 當達到
break語句時,switch語句塊終止,並且控制流程跳轉到switch語句之後的下一行。 - 不是每個
case都需要包含break語句(可選)。 如果不沒有break語句,控制流程將執行到在後續case語句中,直至遇到break語句。 switch語句可以具有可選的default語句,必須出現在switch語句的末尾。 默認情況下可以用於在沒有任何情況為真時執行任務。在default語句不需要使用break語句。
流程圖

示例代碼
using System;
namespace DecisionMaking
{
class Program
{
static void Main(string[] args)
{
/* local variable definition */
char grade = 'B';
switch (grade)
{
case 'A':
Console.WriteLine("Excellent!");
break;
case 'B':
case 'C':
Console.WriteLine("Well done");
break;
case 'D':
Console.WriteLine("You passed");
break;
case 'F':
Console.WriteLine("Better try again");
break;
default:
Console.WriteLine("Invalid grade");
break;
}
Console.WriteLine("Your grade is {0}", grade);
Console.ReadLine();
}
}
}
當編譯和執行上述代碼時,會產生以下結果:
Well done
Your grade is B
