首頁 > Java > java教程 > 為什麼 Switch 語句需要 Break 語句?

為什麼 Switch 語句需要 Break 語句?

DDD
發布: 2024-10-29 03:55:02
原創
907 人瀏覽過

 Why Do Switch Statements Need Break Statements?

沒有 Break 的 Switch 語句

當 switch 語句在 case 之間缺少語句時,會遇到錯誤。考慮下面的程式碼片段:

switch (x) {

    case 0:
        // code

    case 1:
        // code

    case 2:
        // code
}
登入後複製

說明

Java 的 switch 語句需要用 break 語句來分隔大小寫。如果沒有中斷,即使條件與前一個案例匹配,後續案例中的程式碼也會執行。在上面的範例中,如果 x 為 1,則情況 1 和 2 都會被執行。

這種行為通常是無意的,可能會導致不正確的程序邏輯。 Findbugs 識別此潛在錯誤並將其標記為警告。

用法

Break 語句用於終止案例的執行並防止程式碼落入後續案例案例。以下程式碼在語法上是正確的,並且只會執行符合大小寫的程式碼:

switch (foo) {
    case 0:
        doSomething();
        break;
    case 1:
        doSomethingElse();
        break;
    default:
        doSomeOtherThing();
        break;
}
登入後複製

Exception

在某些情況下,可能需要有意允許代碼將落入後續案例。例如,

switch (foo) {
    case 0:
    case 1:
        doSomething();
        break;
    case 2:
        doSomethingElse();
        break;
    default:
        doSomeOtherThing();
        break;
}
登入後複製

在這種情況下,如果 foo 為 0 或 1,則 doSomething() 將被執行。這是一種稱為「fall-through」的常見模式,並且在沒有程式碼時通常被認為是可接受的出現在案例之間(例如案例 1 和案例 2)。在這些情況下,大多數分析工具不會將失敗案例標記為錯誤。

以上是為什麼 Switch 語句需要 Break 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板