開關
switch
語句是一個控制語句,用於從候選列表中選擇要執行的開關部分。switch 語句包括一個或多個 switch 部分。每個開關部分包含一個或多個 case
標籤,後跟一個或多個語句。如果沒有案例標籤包含匹配值,則控制權轉移到 default
部分(如果有)。嚴格來說,C#不支援案例轉換。但是,如果一個或多個 case
標籤為空,則執行將遵循包含程式碼的下一個 case
塊的程式碼。這允許使用相同的實現對多個 case
標籤進行分組。在下面的示例中,如果 month
等於 12,則 case 2
中的程式碼將被執行,因為 case
標籤 12
1
和 2
被分組。如果 case
塊不為空,
int month = DateTime.Now.Month; // this is expected to be 1-12 for Jan-Dec
switch (month)
{
case 12:
case 1:
case 2:
Console.WriteLine("Winter");
break;
case 3:
case 4:
case 5:
Console.WriteLine("Spring");
break;
case 6:
case 7:
case 8:
Console.WriteLine("Summer");
break;
case 9:
case 10:
case 11:
Console.WriteLine("Autumn");
break;
default:
Console.WriteLine("Incorrect month index");
break;
}
case
只能用編譯時已知的值標記 (例如 1
,str
,Enum.A
),因此 variable
不是有效的 case
標籤,而是 const
或 Enum
值(以及任何文字值)。