2014-01-20 47 views
0

這是我的代碼: 有一個probléme「不能存取權限變量j」爲什麼我無法訪問交換機中聲明的變量?

public static void main(String args[]) { 
    char digit = 'a'; 
    for (int i = 0; i < 10; i++){ 
     switch (digit){ 
      case 'x' : { int j = 0; System.out.println(j); } 
      default : { int j = 100; System.out.println(j); } 

     } 
    } 
    int i = j; 
    System.out.println(i); 
} 
+0

爲什麼你在這裏使用'switch-case'?你甚至不修改循環中的數字。 –

+4

需要注意的地方 - 如果你不在你的交換機的每個case的末尾加上break;'語句,那麼下一個case也會被執行。在這個例子中,如果'digit'是''x'',你會同時打印出'0'和'100'。 –

回答

3

每個變量都有範圍。範圍是關於哪些變量可以被訪問的限制。

當您在聲明變量在任何類型的塊{}時,該變量只能在該代碼塊內訪問。

您必須在塊外部聲明(並可能初始化)變量,使其範圍更大,無論是在方法級別還是變量static變量(或實例,如果您正在使用實例方法)。

相關問題