Skip to main content

Co to jest rekurencyjna rozmowa?

W programowaniu wywołanie rekurencyjne jest poleceniem w obrębie podprogramu lub funkcji, która mówi programowi, aby ponownie uruchomić tę samą podprogram.Powtórzenie wydajności może być bezpośrednim wynikiem funkcji lub można uruchomić drugą funkcję, która z kolei odnosi się do pierwszej funkcji.Wezwanie rekurencyjne ma pewne podobieństwa do przerażającej, nieskończonej pętli, ale podprogram zawsze ma warunkowe stwierdzenie, które informuje program, kiedy przestać powtarzać rekurencję.

Koncepcja rekurencji jest prawdopodobnie najlepiej zilustrowana dzięki zastosowaniu przykładu.Załóżmy, że dekarz nakłada nowe półpasiec do domu.Na początek musi nosić pakiet półpasiec na dach.Po przybiciu pierwszego pakietu na miejscu musi zejść po drabinie, odzyskać kolejny pakiet i przybić go na miejscu.Proces ten trwa jako seria Go, Fetch, Return, aż do zastosowania ostatniego gont.W tym momencie dekarz może przejść do następnej pracy lub wrócić do domu.

Chociaż przykład jest uproszczeniem, zawiera wszystkie elementy wywołania rekurencyjnego.Jest punkt wyjścia, dekarz musi odzyskać to, czego potrzebuje, wrócić do początku, a kiedy ostateczny stan jest spełniony, zatrzymaj.Zasadniczo to robi program;Zaczyna się, wdraża działanie, powraca do siebie i kończy się, gdy wystąpi warunek końcowy.

Warunek końcowy jest określany jako przypadek podstawowy.Jest to niezbędne dla wszystkich połączeń rekurencyjnych;Bez tego funkcja będzie się powtarzać.W najlepszym razie powoduje to wyczerpanie zasobów pamięci systemowej.Zwykle przeciążenie awansuje program w pewnym momencie, ale do czasu wykrycia problemu można wyrządzić znaczne szkody.

Doświadczeni programiści mogą rozpoznać podobieństwo między wywołaniem rekurencyjnym a pętlą lub w pobycie.Jeśli na przykład celem jest znalezienie całkowitej liczby zapasów wszystkich zapasów z numerami części większą niż 999, A For Loop mówi programowi, aby zlokalizowali wszystkie kwalifikująceWarunek jest ważny.Można powiedzieć, że połączenie rekurencyjne łączy niektóre cechy tych pętli z oświadczeniem IF-Then-Then-Else;Jeśli ten warunek jest prawdziwy, zrób to lub zrób coś innego, jeśli warunek jest fałszywy.Rekurencja zwykle pozwala jednak na bardziej kompaktowy kod i pozwala na przekazanie problemu do funkcji bliżej punktu, w którym jest potrzebny.