我不是 Java 的新手,但這是我以前從未見過的東西。假設有一個 switch case,在 case 0 中聲明一個變量使變量在其他情況下可見,這是一件奇怪的事情,我認為這不是 java 風格。public static void main(String[] args) { String _case = "case"; switch (_case) { case "1": String foo = "foo"; break; case "2": String bar = "bar"; break; case "case": foo = "foo"; System.out.println(foo); // System.out.println(bar); //Variable bar might not have been initialized break; }}如果1未驗證大小寫,為什么以及如何String foo聲明變量?在線執行代碼
1 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
因為您foo = "foo"
在最后一個案例中進行了設置,所以它保證變量在那個時候被實例化。bar
在最后一種情況下沒有任何時刻被實例化,給你這個錯誤。這是因為 case 中變量的作用域等于整個 switch 語句的作用域。有關此問題的其他問題的更多信息
添加回答
舉報
0/150
提交
取消