簡體   English   中英

Java-從外部訪問在循環內部聲明的變量

[英]Java - accessing variable declared inside loop from outside of it

有沒有一種方法可以使在循環內部聲明的變量能夠從for循環外部調用?

如果在循環結束時需要該對象,則需要創建對該對象的引用,該引用在循環結束后仍然存在。 這樣吧

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
}

如果在循環(或花括號的任何集合)中創建變量,則其作用域僅是該循環的主體。 您必須先創建變量並將其設置在循環中。

在塊內聲明的變量不能在該塊外訪問,它們的作用域和生存期僅限於該塊,但是對於在塊外聲明的變量,其值可以在該塊內更改,並且該值將被一次反映為了更好的理解,您可以通過以下鏈接http://www.java2s.com/Tutorial/Java/0020__Language/VariableScope.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM