在 Java 程式設計中,switch-case 語句是一種控制結構,用於根據變數的值執行多個程式碼區塊中的一個。它比使用多個 if-else 語句更有效率且更具可讀性。使用 switch-case 語句時需要理解的一個重要概念是「失敗」。
當程式碼執行從一個情況繼續到下一個情況而沒有遇到break語句時,就會發生失敗。預設情況下,執行符合的 case 區塊後,控制流程會向下傳遞到後續的 case 區塊,直到遇到 break 語句或 switch 語句結束。
以下是 Java 中 switch-case 語句的基本語法:
switch (expression) { case value1: // code block break; case value2: // code block break; default: // default code block }
讓我們來看一個範例來了解失敗是如何運作的:
int day = 2; switch (day) { case 1: System.out.println("Monday"); case 2: System.out.println("Tuesday"); case 3: System.out.println("Wednesday"); default: System.out.println("Other day"); }
在此範例中,輸出將為:
Tuesday Wednesday Other day
當 day 等於 2 時,執行 case 2 區塊,列印「Tuesday」。由於case 2之後沒有break語句,因此繼續執行case 3,然後執行預設case,分別列印「Wednesday」和「Other day」。這是失敗行為的典型例子。
為了防止失敗,您應該用break語句結束每個案例:
int day = 2; switch (day) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; default: System.out.println("Other day"); break; }
現在,輸出將是:
Tuesday
有時,可以故意使用失敗來使用相同程式碼區塊執行多個案例:
int day = 2; switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("It's a weekday"); break; case 6: case 7: System.out.println("It's a weekend"); break; default: System.out.println("Invalid day"); }
在此範例中,日期值 1 到 5 都會導致列印「It's a weekday」。
理解 switch-case 語句中的失敗對於編寫清晰且無錯誤的 Java 程式碼至關重要。雖然失敗在某些情況下可能很有用,但使用break語句來防止意外行為通常是一個很好的做法。
注意:與 Java 不同,Ruby 中的 case-when 構造不會表現出失敗行為。每個when子句都是獨立的,如果沒有明確的指示,執行不會自動繼續到後續的when子句。
以上是了解 Java Switch-Case 語句中的 Fall-Through的詳細內容。更多資訊請關注PHP中文網其他相關文章!