Dzień dobry,
Zastanawia mnie problem zmiennych w funkcji rekurencyjnej w Javie. Mianowicie chodzi mi o to co się dzieje jeśli np. zadeklarujemy zmienną w funkcji i przypiszemy jej jakąś wartość, to czy jeśli w późniejszym etapie wywołamy daną funkcję rekurencyjnie, to wartość zmiennej zostanie zmieniona na tą początkową (czyli, np. nadaną podczas deklaracji), czy będzie posiadała wartość z momentu przed rekursją?
Jeśli wartość będzie zmieniana na początkową to co należy zrobić aby nawet pomimo rekursji ostatnia wartość zmiennej była pamiętana? (tak jak static w C++)
0
1
Przekaż ją jako argument funkcji (typowa praktyka np w elixirze, który rekursji mówi stanowcze tak, poprosze
)
1
Każde wywołanie funkcji ma własny kontekst (fragment stosu), więc jeśli chodzi o zmienne lokalne, nie zostaną nadpisane.
0
Dziękuję za szybką odpowiedź!