Подсмотрел немного решение, сделал свое, но одну строку кода все равно не могу понять
sum = sum + number;
я объявил переменную "sum" до цикла, потом уже в цикле пишу эту строку, сам вопрос заключается в том, что я немного недопонял, как работает java, что в цикле мы этой же переменной без объявления ее в цикле присваиваем эту же переменную, объявленную до цикла. Сложно объяснил, но надеюсь, кто - нибудь мне сможет это объяснить, потому что реально хочу разобраться! Спасибо огромное!
Andrew
7 уровень
Если несложно, объясните, пожалуйста
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
5 июля 2019, 23:34
Область видимости переменных - Лекция джава раш
Еще раз внимательно пересмотри эту лекцию.
Если бы мы, объявили переменную sum внутри цикла, каждую итерацию значение бы перетиралось.
Поэтому и объявляем ДО цикла, чтобы у нас была отдельно сохранена переменная которая бы хранила сумму и цикл ее не обнулял.
ЗвериВРукавичке = 0;
ЦИКЛ: 1-ая итерация:
ЗвериВРукавичке = ЗвериВРукавичке + мышка // В рукавичке - мышка
2 итерация:
ЗвериВРукавичке = ЗвериВРукавичке + лягушка // В рукавичке - мышка, лягушка
3 итерация:
ЗвериВРукавичке = ЗвериВРукавичке + лисичка // В рукавичке - мышка, лягушка, лисичка
и тд.
А вот если бы объявлять в средине цикла:
ЦИКЛ: 1-ая итерация:
ЗвериВРукавичке = ЗвериВРукавичке + мышка // В рукавичке - мышка
2 итерация:
ЗвериВРукавичке = ЗвериВРукавичке + лягушка // В рукавичке - лягушка
3 итерация:
ЗвериВРукавичке = ЗвериВРукавичке + лисичка // В рукавичке - лисичка
и тд.
Если внутри цикла будет объявленная переменная, значит она будет объявляться и инициализироваться каждую итерацию, а значит она будет постоянна перезаписываться заново и терять все предыдущие значения.
И в конце концов, в рукавичке будет один медвед, поскольку пришел последним.
0
Andrew
6 июля 2019, 15:37
Понял! Спасибо огромное!
0