|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
||||||
Инкремент переменной в рекурсии17.11.2016, 10:24. Показов 1518. Ответов 9
Метки нет (Все метки)
Здравствуйте форумчане, что то не приходит идея как сделать в рекурсивном методе переменную, чтобы на следующем входе в функцию она не сбрасывала свое значение. Ведь в Java переменные, объявленные внутри метода должны иметь начальное значение. Так же у меня нет возможности выносить эту переменную в поле класса. Есть вариант как поступить ?
0
|
||||||
| 17.11.2016, 10:24 | |
|
Ответы с готовыми решениями:
9
Инкремент в рекурсии Инкремент переменной
|
|
|
|
| 17.11.2016, 10:27 | |
|
Вам нужно задуматься об изменении архитектуры. А именно, нужно ли вам иметь эту переменную именно в методе.
1
|
|
|
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 901
|
||||||
| 17.11.2016, 10:43 | ||||||
|
ну передавайте ее вторым параметром в вашу функцию, и при рекурсивном вызове вызывайте функцию как: (i +1). ну а внутри метода можете ее копировать:
1
|
||||||
|
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
|
||||||
| 17.11.2016, 10:47 | ||||||
|
Willyams, может быть вам нужно что-то вроде этого?
0
|
||||||
|
|
|
| 17.11.2016, 10:56 | |
|
Для начала нужно узнать вообще с чем имеем дело. Увидеть код, или хотя бы узнать что он вообще делает и какой физический смысл у обозначенной переменной.
0
|
|
|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
||||||
| 17.11.2016, 11:07 [ТС] | ||||||
|
К сожалению код я не могу показать, могу прибегнуть только к абстракции.Мне нужно узнать уровень вложенности объекта. У объекта может быть родитель, если родитель есть мы входим в рекурсию и инкрементим переменную. Пока что для теста я прибегнул к методу, который посоветовал minore, хотелось бы как то украсить сущесвующий код, но по ходу тут я встаю в тупик.
Проблема встает в уродливом коде вызова
0
|
||||||
|
|
|||
| 17.11.2016, 11:16 | |||
|
0
|
|||
|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
|
| 17.11.2016, 11:36 [ТС] | |
|
Проблема стоит в том, что объекты на одном уровне не могу иметь одинаковых имен. Это не касается сейчас наследования. Просто объект child создается и получает какие-то свойства от родителя. Мне нужно запретить создание объектов на одном уровне с одинаковыми именами. К примеру есть корневой объект "qwe", у него мы создаем под-объект "qwe"/"qwe1" и мне нужно провалидировать создание нового объекта с именем либо "qwe", либо если у нас уже есть рутовый объект и у него мы создаем "newRoot/qwe1" - это должно спровоцировать ошибку.
Добавлено через 13 минут Дискуссию можно прекратить, придется использовать другой подход здесь.
0
|
|
|
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
|
||||||
| 17.11.2016, 13:24 | ||||||
|
Willyams, смотрите, я бы сделал так: в классе делаете поля "предок" и Map"наследники". Делаете приватный конструктор, чтобы было невозможно прямое создание объектов.
Делаете статический объект, который будет предок всем "корневым объектам", в него добавляете объекты статическим методом. В свою очередь каждый объект-потомок создается также, только уже не статическим методом. Ну и конечно модификаторы доступа для полей делайте private, тут мне лень было)) Кликните здесь для просмотра всего текста
1
|
||||||
|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
|
| 17.11.2016, 16:03 [ТС] | |
|
RedPatrick, спасибо за ваше потраченное время.
0
|
|
| 17.11.2016, 16:03 | |
|
Помогаю со студенческими работами здесь
10
Инкремент значения переменной Инкремент переменной префаба Странно работает инкремент переменной Некоректный инкремент переменной цикла for при сравнении элементов массива
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|