Java - 无法在for-each循环中更改int值

raf*_*.sz -1 java foreach

这个问题看起来非常明显,但是我看不出我的错...我在for-each循环中声明了一个int变量,看起来我无法修改它.

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

List是一个非空的LinkedList,存在于代码中的某个位置.输出是:

i = 0
i = 0
i = 0
Run Code Online (Sandbox Code Playgroud)

甚至可以在这样的循环中修改int的值吗?谢谢.

Hov*_*els 7

对于每个循环,您将创建一个 i变量,该变量与先前循环迭代中的先前变量完全无关.解决方案:在循环上方声明它.

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