2014-10-12 47 views
0

我正要發佈一個查詢,但我通過重寫代碼避免了問題而不是回答它來解決它。在Java中初始化一個局部變量後

下面是我想要做的一個例子。

我在do-while循環中有一個for loop,並希望do-while循環運行,直到達到與嵌套for loop有關的條件。我得到的錯誤是i未初始化,因此while條件無法運行,這是有道理的。

我希望在do-while循環之外創建一個局部變量,並在嵌套的for loop中初始化它。這顯然是不可能的,因爲我試圖執行它的方式,但有沒有另一種方式來'後初始化'在Java中的變量?

同樣出於好奇,哪些語言允許這樣的初始化?

case 2: 
     int i; 
     do{ 
      try{ 
       for(i=0; i<array.length;i++){    
        if(... 
       } 
      } 
      catch(Exception e) 
      { 
       System.out.println(e.getMessage()); 
      } 

     } while(!array[i].state.equals("X")); 
     break; 

回答

0

您可以通過給i初始值在聲明很容易解決這個問題:

int i = 0; 
+0

但它會更新與for循環的增加? – Edward 2014-10-12 10:45:48

+0

@愛德華當然會。 – Eran 2014-10-12 10:51:58

0

你有做,而之前初始化德變量i。

在do-while循環中,您可以重置該變量。現在你已經達到了這個條件。另一方面,我不知道你的內部代碼和你的算法的邏輯,但我認爲如果沒有任何元素的狀態爲「 X」。我認爲這是非常有可能的(當然取決於你的算法)去除for循環,並在do-while中添加代碼,並且使用i ++和最終條件:while(!array [i] .state。等於(「X」)& & i < array.lengh);