C# Switch語句
switch語句可以讓一個變量對反對值的列表平等進行測試。每個值被稱為一個情況(case),和該變量被接通檢查每個開關盒(switch case)。
語法
在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語句中使用的表達式必須具有整型或枚舉類型,或者是一個類型,其中所述類具有一個單一的轉換功能,以一個整體或枚舉類型。
-
switch內可以有任意數量case語句。每一種case後跟的值進行比較(後跟一個冒號)。
-
恒定表達的情況下,必須是相同的數據類型,在switch的變量,它必須是一個常量或文字。
-
當被交換的變量上等於case,以下的case語句將執行,直到break語句為止。
-
當達到一個break語句,switch終止,並且控製流跳轉到switch語句的下一行。
-
不是每種 case 都需要包含一個break。如果未出現break,控製流都將落空後續case,直到break為止。
-
switch語句可以有一個可選默認case,它必須出現在switch的結束。缺省情況下,可用於執行任務時冇有case是true。在默認情況下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