我不是 Java 的新手,但這是我以前從未見過的東西。假設(shè)有一個 switch case,在 case 0 中聲明一個變量使變量在其他情況下可見,這是一件奇怪的事情,我認(rèn)為這不是 java 風(fēng)格。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聲明變量?在線執(zhí)行代碼
1 回答

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