这个问题看起来非常明显,但是我看不出自己的错... 我在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的值吗?感谢。
答案 0 :(得分:6)
对于每个循环,您创建一个 new i
变量,该变量与之前循环迭代中的先前变量完全无关。解决方案:在循环上方声明它。
int i = 0;
for(String tmp : list) {
System.out.println("i = " + i);
i++;
}
答案 1 :(得分:3)
您需要在for循环之外移动int i = 0
的声明。目前,您只是在每次迭代时初始化int i
到0
。
答案 2 :(得分:0)
您可以对其进行编辑,但在结束括号后会丢弃该变量。
答案 3 :(得分:0)
它应该在for循环之外
int i = 0;
for(String tmp : list) {
System.out.println("i = " + i);
i++;
}