switch條件語句是一種很常用的選擇語句,它與if條件語句不同,它只針對某個表達式的值作出判斷,從而決定執行哪一段代碼.
switch條件語句用到的關鍵字: switch case break default
switch條件語句的格式如下:
1 switch (表達式) 2 { 3 case 目標值1: 4 執行語句1; 5 break; 6 case 目標值2: 7 執行語句2; 8 break; 9 ...... 10 11 case 目標值n: 12 執行語句n; 13 break; 14 default: 15 執行語句n+1; 16 break; 17 }
在上面的格式中,switch語句將表達式的值與每個case中的目標值進行匹配,如果找到了匹配的值,會執行對應case后邊的語句;如果沒找到任何匹配的值,就會執行default后的語句.switch語句中的break關鍵字的作用是跳出switch語句.
1 switch (用於表示星期的數字) 2 { 3 case 1: 4 輸出星期一; 5 break; 6 case 2: 7 輸出星期二; 8 break; 9 case 3: 10 輸出星期三; 11 break; 12 case 4: 13 輸出星期四; 14 break; 15 case 5: 16 輸出星期五; 17 break; 18 case 6: 19 輸出星期六; 20 break; 21 case 7: 22 輸出星期日; 23 break; 24 default: 25 輸出此日期為非法日期; 26 break; 27 }
上面的偽代碼根據數字來輸出中文格式的星期.
switch條件語句的表達式的類型可以是: bool,整形,char,string,枚舉,或相應可以為null的類型.
下面就演示一個表達式類型為字符串的案例:
1 string []Date={"Monday","Tuesday","Wednesday","Thursday","Firday","Saturday","Sunday"};//數組的索引值(下標)分別為0,1,2,3,4,5,6; 2 string []ChineseDate = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" }; 3 4 for (int i = int.Parse(Console.ReadLine()); i > 0 && i <= 7; i = int.Parse(Console.ReadLine()))//i=7是因為輸入7的時候對應的索引值為6,輸出星期日; 5 { 6 switch (Date[i-1]) //表達式的值是字符串, i-1是因為字符串數組的下標是從0開始的. 7 { 8 case "Monday": //對應的case目標值也應該是字符串; 9 Console.WriteLine(ChineseDate[i - 1]); 10 break; 11 case "Tuesday": 12 Console.WriteLine(ChineseDate[i - 1]); 13 break; 14 case "Wednesday": 15 Console.WriteLine(ChineseDate[i - 1]); 16 break; 17 case "Thursday": 18 Console.WriteLine(ChineseDate[i - 1]); 19 break; 20 case "Firday": 21 Console.WriteLine(ChineseDate[i - 1]); 22 break; 23 case "Saturday": 24 Console.WriteLine(ChineseDate[i - 1]); 25 break; 26 case "Sunday": 27 Console.WriteLine(ChineseDate[i - 1]); 28 break; 29 default: 30 Console.WriteLine("此日期為非法日期");//因為在循環中,索引值被循環條件限制,所以這里的default沒有用上; 31 break; 32 } 33 }
在使用switch語句的過程中,如果多個case條件后面的執行語句是一樣的,則該執行語句只需書寫一次即可,只是一種簡寫的方式.
例如要判斷一周中的某一天是工作日還是休息日;
1 int week = 2; 2 switch (week) 3 { 4 case 1: 5 case 2: 6 case 3: 7 case 4: 8 case 5: 9 Console.WriteLine("今天是工作日");//當變量week的值為1,2,3,4,5中任意一個值時,處理方法相同,都是打印"今天是工作日". 10 break; 11 case 6: 12 case 7: 13 Console.WriteLine("今天是休息日");//同理 14 break; 15 }
c#中switch語句兩個case標簽之間有代碼,卻沒有break跳出的話,系統會提示錯誤,控制不能從一個case標簽貫穿到另一個case標簽.
1 int week = 2; 2 switch (week) 3 { 4 case 1: 5 case 2: 6 case 3: Console.WriteLine("當兩個case標簽之間有代碼,卻沒有break,系統會提示錯誤:控制不能從一個case標簽貫穿到另一個case標簽"); 7 case 4: 8 case 5: 9 Console.WriteLine("今天是工作日"); 10 break; 11 case 6: 12 case 7: 13 Console.WriteLine("今天是休息日"); 14 break; 15 }
關於switch條件語句的介紹就到這里了,歡迎小伙伴們提供意見,可能有遺漏的地方,希望見諒.