if語句每次判斷只能實現兩條分支,如果要實現多種選擇的功能,那麼可以采用switch語句。switch語句根據一個控制表達式的值選擇一個內嵌語句分支來執行。它的一般格式為:
switch(controllong-expression) { case constant-expression embedded-statements default: embedded-statements }
switch語句的控制類型,即其中控制表達式(controllong-expression)的數據類型可以是sbyte,byte,short,ushort,uint,long,ulong,char,string或枚舉類型(enum-type)。每個case標簽中的常量表達式(constant-expression)必須屬於或能隱式轉換成控制類型。如果有兩個或兩個以上的case標簽中的常量表達式相同,編譯時將會報錯。switch語句中最多只能有一個default標簽。
我們舉一個例子來說明switch語句是如何實現程序的多路分支的。
假設考查課的成績按優秀、良好、中等、及格和不及格分為五等,分別用4、3、2、1、0來表示,但實際的考卷為百分制,分別對應的分數為90-100,80-90,60-80,60分以下。下面的程序將考卷成績x轉換為考查課成績y。我們先看流程圖。
代碼如下:
int x=int(x/10); switch(x) { case 10:y=4;break; case 9:y=4;break; case 8:y=3;break; case 7:y=2;break; case 6:y=1;break; default:y=0; }
下面的例子判斷傳遞給應用程序的參數的有無、位數。
程序清單8-2:
using System; class Test { public static void Main(string[] args{ switch(args.Length){ case 0: Console.WriteLine("No arguments were provided"); break; case 1: Console.WriteLine("One arguments was provided"); break; default: Console.WriteLine("{0}arguments were provided"); break; } }