有没有办法让一个在循环内声明的变量能够从外部调用for循环?
答案 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