Microsoft 2023 年所提供的 C# codecamp 基礎課程,總共有 38 個單元,完成後就可以獲得 Certification ,今天要來跟大家分享的是第 16 單元的內容。
本節內容
switch 陳述式
switch 功能與寫法
- 都不符合才會進入到 default ,不論 default 是不是放在最後一個
- 除非遇到 break ,不然會繼續比對下一個條件(return, throw 等也會直接離開 switch 區塊)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | int employeeLevel = 200;string employeeName = "John Smith";
 
 string title = "";
 
 switch (employeeLevel)
 {
 case 100:
 title = "Junior Associate";
 break;
 case 200:
 title = "Senior Associate";
 break;
 case 300:
 title = "Manager";
 break;
 case 400:
 title = "Senior Manager";
 break;
 default:
 title = "Associate";
 break;
 }
 
 Console.WriteLine($"{employeeName}, {title}");
 
 | 
注意:選擇性 default 標籤可以出現在 switch 區段清單中的任何位置。 不過,大部分開發人員都會選擇將其放在最後一個位置,因為將 default 放在最後的選項更為合理 (邏輯上)。 不論位置為何,都會最後評估 default 區段。
多個 case 符合的狀況
可以將統一結果的條件寫在一起,如下面範例所示:
| 12
 3
 4
 
 | case 100:case 200:
 title = "Senior Associate";
 break;
 
 | 
switch 語法練習
問題
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 
 | 
 string sku = "01-MN-L";
 
 string[] product = sku.Split('-');
 
 string type = "";
 string color = "";
 string size = "";
 
 if (product[0] == "01")
 {
 type = "Sweat shirt";
 } else if (product[0] == "02")
 {
 type = "T-Shirt";
 } else if (product[0] == "03")
 {
 type = "Sweat pants";
 }
 else
 {
 type = "Other";
 }
 
 if (product[1] == "BL")
 {
 color = "Black";
 } else if (product[1] == "MN")
 {
 color = "Maroon";
 } else
 {
 color = "White";
 }
 
 if (product[2] == "S")
 {
 size = "Small";
 } else if (product[2] == "M")
 {
 size = "Medium";
 } else if (product[2] == "L")
 {
 size = "Large";
 } else
 {
 size = "One Size Fits All";
 }
 
 Console.WriteLine($"Product: {size} {color} {type}");
 
 | 
解答
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 
 | string sku = "01-MN-L";
 
 string[] product = sku.Split('-');
 
 string type = "";
 string color = "";
 string size = "";
 
 switch (product[0])
 {
 case "01":
 type = "Sweat shirt";
 break;
 case "02":
 type = "T-Shirt";
 break;
 case "03":
 type = "Sweat pants";
 break;
 default:
 type = "Other";
 break;
 }
 
 switch (product[1])
 {
 case "BL":
 color = "Black";
 break;
 case "MN":
 color = "Maroon";
 break;
 default:
 color = "White";
 break;
 }
 
 switch (product[2])
 {
 case "S":
 size = "Small";
 break;
 case "M":
 size = "Medium";
 break;
 case "L":
 size = "Large";
 break;
 default:
 size = "One Size Fits All";
 break;
 }
 
 Console.WriteLine($"Product: {size} {color} {type}");
 
 | 
重點整理
這個章節主要是讓大家練習如何使用 switch 的功能,相較於 if...else 的陳述式,在更多不同的條件下會大幅的提升可讀性。
有透過實際需求練習真的是還不錯,可以更知道兩者之間應該要如何轉換?
那我們下次見ʘ‿ʘ
參考資料