2015-04-25 36 views
-2

这个问题看起来很明显,但我看不到我的错...... 我在每个循环内声明一个int变量,它看起来像我无法修改它。Java - 无法更改每个循环内的int值

for(String tmp : list) { 
     int i = 0; 
     System.out.println("i = " + i); 
     i++; 
} 

列表是一个LinkedList,它不是空的,并存在于代码中的某处。输出是:

i = 0 
i = 0 
i = 0 

它甚至可以修改此类循环内的int值吗?谢谢。

回答

6

使用每个循环,您将创建一个变量,其中一个变量与之前迭代循环中的前一个变量完全无关。解决方案:在循环之上声明它。

int i = 0; 
for(String tmp : list) { 
     System.out.println("i = " + i); 
     i++; 
} 
0

您可以对其进行编辑,但该变量在右括号后被丢弃。

3

您需要将int i = 0的声明移至for循环之外。目前,您只是在每次迭代初始化int i0

0

它应该是外面的for循环

int i = 0; 
for(String tmp : list) { 
    System.out.println("i = " + i); 
    i++; 
}