Java - 从外部访问在循环内声明的变量

时间:2016-04-11 17:27:58

标签: java for-loop

有没有办法让一个在循环内声明的变量能够从外部调用for循环?

3 个答案:

答案 0 :(得分:1)

如果在循环结束时需要该对象,则需要创建一个对循环完成后仍然存在的引用。这样做

Object pointer = null;
for (int v = 0; v < n; v++) {
    ...
    pointer = myObj;
}

// use pointer here

如果你在完成它后不想让那个物体粘在一起,说你需要在循环之后只用它做一件事,那么你可以在它自己的范围内创建它:

{
    Object pointer = null;
    for (int v = 0; v < n; v++) {
        ...
        pointer = myObj;
    }

    // use pointer here
}
// pointer no longer exists here

遵循这个逻辑,您甚至可以在循环内部创建范围

for (int v = 0; v < n; v++) {
    ...
    {
        // If loop is done, now use the myObj
    }
}

最后,为什么不摆脱范围并在循环中使用obj?

for (int v = 0; v < n; v++) {
    ...
    // If loop is done, now use the myObj
}

答案 1 :(得分:1)

如果在循环(或任何花括号中)中创建变量,则其范围仅为该循环的主体。您必须先预先创建变量并将其设置在循环中。

答案 2 :(得分:1)

块内声明的变量不能在该块之外访问。它的作用域和生命周期仅限于块。但是对于在块外声明的变量,其值可以在块内部更改,值将相同一旦你走出街区就会被反映出来。为了更好地理解你可以通过这个链接http://www.java2s.com/Tutorial/Java/0020__Language/VariableScope.htm