2014-10-12 46 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);