首頁 > Java > java教程 > 為什麼 Java Switch 語句需要常數表達式作為 Case 標籤?

為什麼 Java Switch 語句需要常數表達式作為 Case 標籤?

Barbara Streisand
發布: 2024-12-06 16:45:14
原創
177 人瀏覽過

Why Do Java Switch Statements Require Constant Expressions for Case Labels?

Java Switch 語句:常數表達式要求

在 Java 中使用 switch 語句時,case 標籤必須是常數表達式。這意味著表達式必須在編譯時已知。在給定的程式碼中:

public static String lookup(int constant) {
    switch (constant) {
        case Foo.BAR: return "bar";
        case Foo.BAZ: return "baz";
        case Foo.BAM: return "bam";
        default: return "unknown";
    }
}
登入後複製

case 標籤上的編譯器錯誤,因為 Foo.BAR、Foo.BAZ 和 Foo.BAM 不被視為常數表達式。雖然它們在類別中被聲明為常數,但它們並未使用特定值進行初始化。常數表達式需要一個可以在編譯時計算的值,例如使用編譯時常數初始化的文字或最終變數。

要解決此問題,可以使用以下方式初始化Foo.BAR 常數編譯時常數值:

public abstract class Foo {
    public static final int BAR = 1;
    public static final int BAZ = 2;
    public static final int BAM = 3;
}
登入後複製

這將允許switch 語句成功編譯,因為case 標籤現在將被評估為常數

或者,可以將常數宣告為枚舉,從而允許更簡潔的程式碼和更強型別的常數。但是,枚舉有一定的限制,例如需要預設大小寫和特定枚舉值作為大小寫標籤。

以上是為什麼 Java Switch 語句需要常數表達式作為 Case 標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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