c#switch語句的用法


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條件語句的介紹就到這里了,歡迎小伙伴們提供意見,可能有遺漏的地方,希望見諒.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM