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