2016-04-11 5 views
-1

Есть ли способ сделать переменную, объявленную внутри цикла, вызываемой извне для цикла?Java - доступ к переменной, объявленной внутри цикла вне ее

+7

Нет, это целая точка. – Savior

+1

yes объявить его за пределами цикла 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