java在一个函数中声明变量一次
我有一个简单的java问题。我有一段代码:
int i1=0;
for(String x: list1)
{
for(String y: list2)
{
if(x == y)
{
log ("Checking "+x+" with "+y+" => found a match!");
list1.remove(i1);
break;
}
else
{
log ("Checking "+x+" with "+y+" => not matching!");
}
}
i1=i1+1;
}
正如你所看到的,我在上面声明了“i1”,但是有没有办法在第一次声明时只声明一次,然后在结束后让自行取消设置
希望你能理解我
# 1 楼答案
我不是Java专家,但我记得在迭代列表时不要从列表中删除对象
所以(即使我错了),你也应该这样做:
不要忘记删除中的
# 2 楼答案
不,在Java中不能这么做。如果将声明移动到
for
循环中,那么在循环的每次迭代中,变量都将被重新分配到其初始值如果“unset”的意思是“超出范围”,那么你可能真的不需要担心这一点;这里没有性能问题。如果您真的想强制变量在外部
for
循环结束时超出作用域,您可以围绕整个循环创建一个额外的块,就像这样(但您真的不需要这样做,这是不必要的!):