C# 中的 Switch 語句失敗
switch 語句提供了一種根據指定變數的值執行不同程式碼的方法。雖然 switch 語句比 if/else if 結構有幾個優點,但它的限制之一是無法從一種情況切換到另一種情況。
在 C# 中,編譯器強制執行「無失敗」規則,這表示當到達一個 case 時,執行必須跳到下一個 case 的開始。此行為可確保程式碼清晰並防止無意執行多種情況。
考慮以下範例,我們嘗試使用switch 語句將數字轉換為其單字表示形式:
switch (number.ToString().Length) { case 3: ans += string.Format("{0} hundred and ", numbers[number / 100]); case 2: int t = (number / 10) % 10; if (t == 1) { ans += teens[number % 10]; break; } else if (t > 1) ans += string.Format("{0}-", tens[t]); case 1: int o = number % 10; ans += numbers[o]; break; default: throw new ArgumentException("number"); }
When執行此程式碼,編譯器將產生錯誤,指示「控制無法從一個case 標籤('case 3:') 落入另一個」和「Control 無法從一個case 標籤('case 3:') 落入」 2:')到另一個。 」
要在C# 中實現失敗行為,可以採用以下技術:
以上是C# switch 語句會失敗嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!