一個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