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

时间:2015-04-25 19:45:47

标签: java foreach

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

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

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

i = 0
i = 0
i = 0

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

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

它应该在for循环之外

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