」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 了解 Java Switch-Case 語句中的 Fall-Through

了解 Java Switch-Case 語句中的 Fall-Through

發佈於2024-07-31
瀏覽:914

Understanding Fall-Through in Java Switch-Case Statements

在Java程式設計中,switch-case語句是一種控制結構,用於根據變數的值執行多個程式碼區塊中的一個。它比使用多個 if-else 語句更有效率且更具可讀性。使用 switch-case 語句時需要理解的一個重要概念是「失敗」。

什麼是跌倒?

當程式碼執行從一個情況繼續到下一個情況而沒有遇到break語句時,就會發生失敗。預設情況下,執行匹配的 case 區塊後,控制流程將向下傳遞到後續的 case 區塊,直到遇到 break 語句或 switch 語句結束。

Switch-Case 語句的語法

以下是 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 子句。

版本聲明 本文轉載於:https://dev.to/thierrychau/understanding-fall-through-in-java-switch-case-statements-17gb?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3