2016-03-16 4 views
1

Я работал с этим кодом в JavaЗначение итератора, когда цикл прекращает выполнение

int i = 2; 
for (int j=0; j < 12; j++) { 
    i += j; 
} 

и была викторина на значении J когда цикл прекращает выполнение. Значение j после цикл прекращает выполнение, очевидно, 12. Но, а как насчет , когда?

Я пытался преодолеть мое замешательство, добавив

System.out.println(j); 

после оператора цикла, но это оказалось ошибкой (не может найти символ из J).

Не могли бы вы объяснить это? Спасибо

+0

'j' неизвестен вне цикла, поскольку он определен в инициализации' for'. Поместите свой 'System.out.println' внутри цикла и посмотрите на его последнее значение. – Berger

+0

Когда цикл перестает выполняться, это потому, что 'j = 12' - так 12 является значением' when' –

ответ

2

Если вы объявите j внутри цикла, j не имеет значения после окончания цикла, так как он выходит из сферы действия.

Если вы объявляете j перед циклом, вы будете в состоянии напечатать его значение после цикла, и это будет 12.

int i = 2; 
int j = 0; 
for (j=0; j < 12; j++) { 
    i += j; 
} 
System.out.println(j); 
+0

Да, какая глупая ошибка lol. Большое спасибо: D – mawgumelar

1

Вы не можете распечатать переменной j, потому что он включил в ваш цикл только для цикла.

Чтобы распечатать его правильно, вы должны определить переменную j вне цикла.

int i=2; 
int j; 
for (j=0; j<12; j++) { 
    i+=j; 
} 
System.out.println(j); 
+0

А я вижу! Благодарю. Теперь я понял: D – mawgumelar

Смежные вопросы