2016-04-11 17 views
-1

ループ内で宣言された変数をforループの外側から呼び出せるようにする方法はありますか?Java - 外部からループ内で宣言された変数

+7

いいえ、それは範囲の全体のポイントです。 – Savior

+1

はいそれはforループの外に宣言します – ControlAltDel

+2

私はこの質問がなぜ非常に多くのダウン投票を持っているのかわかりません。初心者の正直な質問です。私たちがプログラミング/ Java(または同様の規則を持つ言語)を学び始めたとき、ほとんどの人が私たちの生活の中で一度尋ねたことでしょう。 – Pshemo

答えて

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

あなたがループ内の変数(または中括弧の任意のセット)を作成した場合、その範囲は、そのループの本体のみです。変数を手作業で作成してループに設定する必要があります。

+0

ループの内部にあるコードによって変数が変更されますか? –

+0

はい、あなたが行うことはすべて完了したままになります – rtpax

1

ブロック内で宣言された変数はブロック外ではアクセスできません。ブロックの範囲と有効期間はブロックに限定されています。ブロック外で宣言された変数の場合、ブロック内でその値を変更でき、あなたがブロックから出てくると反映されます。このリンクを理解するには、http://www.java2s.com/Tutorial/Java/0020__Language/VariableScope.htm

関連する問題