Собственно вопрос, задачу я кое как с подсказками решил. Но для меня почему-то оказалось неожиданным что int вне цикла может перезаписываться, возвращаясь к началу. Почувствовал себя глупым по этой задачке, но и просто хотел попросить вашего совета. Может какую лекцию не так хорошо прочитал и вы тыкнете мне по ней или дополнительный материал про выполнение последовательности и логики обработки кода 😁
Я где-то день думал, как можно формулой или каким методом обозначить бесконечное сложение чисел....
I1OFF
1 уровень
Последовательность действий
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сирёга
5 октября 2023, 13:36
Вы в следующий раз из задачи вопрос задавайте, чтобы ваш код был виден.
Вы про переменную, которая суммирует считанные значения?
Если про нее, то у нее область видимости шире, чем у переменной, которую объявляют в цикле, например. То есть, переменная, объявленная в методе (в этом случае - до цикла), видна и в цикле. А вот переменная, объявленная в цикле, в методе (в данной задаче - в main) не видна.
Чтобы суммирующая int переменная могла суммировать данные, она должна быть объявлена (и инициализирована нулем) в методе до цикла. Иначе (если будет каждый раз объявляться в цикле) она будет каждую итерацию переинициализироваться (возвращаться в начальное значение) и ничего не суммировать
+1
I1OFF
5 октября 2023, 14:02
Да-да, именно это. Я через задачу в помощь пошел и думал код закрепить, но он писал что готовое решение выкладывать нельзя. Вот, а я и чего-то не догадался что вне цикла он сохранит это, шаблонно еще думал что код исполняется строго сверху-вниз и к началу чтения не возвращается. Сейчас я уже получше понял, просто боялся что я знаю как решить теперь, но не понимаю логики исполнения кода.
0
very junior java developer
5 октября 2023, 13:15
привет. вопрос твой понять не смог. что ты имеешь ввиду - "Но для меня почему-то оказалось неожиданным что int вне цикла может перезаписываться, возвращаясь к началу."??? Попробуй перефразировать или более развёрнуто задать вопрос.
0
I1OFF
5 октября 2023, 13:35
Привет! Да я имел ввиду что если до создания цикла указать тип int x = 0, то после того как я создам цикл и в нем укажу новый тип int y, то при сумме друг на друга x = x + y (внутри цикла!). Внешний тип int x, который мы создали до цикла будет перезаписывать все в себя.
И меня почему это так удивило, я долгие часы гадал, как бесконечно можно складывать... Думал что int x = 0; запомнит лишь первую сумму или во все не отреагирует. А так он после первой суммы записывает к примеру 52 и потом к этим 52 прибавляется следущая сумма. А я думал что он просто эти 52 перезапишет на новую сумму двух чисел - стирая предыдущие.
И вот в такой вроде бы простой логике я и потерялся..
0
very junior java developer
5 октября 2023, 13:57полезный
почитай в интернете или на ютуб или на JavaRush инфу по теме Глобальны и Локальные переменные, видимость переменных. Я расписывать всё не буду, лишь приведу пример(читай комменты в коде):
дальше по ходу обучения ты вникнешь, не переживая, это основы программирования, их по-любому не пропустишь.
+2
I1OFF
5 октября 2023, 14:04
Благодарю Вас! Обязательно изучу :)
0
very junior java developer
5 октября 2023, 14:12полезный
а что касается этого : "А я думал что он просто эти 52 перезапишет на новую сумму двух чисел - стирая предыдущие."
то тут всё зависит от того, что ИМЕННО происходит с переменной, какая операция проводится, пример:
Смотри скриншот:
![]()

+1