CodeGym /Blog Java /Random-PL /Rekurencja Java
John Squirrels
Poziom 41
San Francisco

Rekurencja Java

Opublikowano w grupie Random-PL

Co to jest rekurencja w Javie?

Scenariusz, w którym funkcja lub metoda wywołuje samą siebie, nazywany jest rekurencją, a taka funkcja lub metoda jest nazywana funkcją lub metodą rekurencyjną. Podejście to jest zawsze używane do dzielenia złożonych problemów na proste i łatwiejsze do napisania. Prostym przykładem jest umieszczenie dwóch lusterek naprzeciwko siebie i zaczną one odbijać się rekurencyjnie, co można łatwo zobaczyć.

Rekurencja pośrednia

Powyższy przykład przedstawia rekurencję pośrednią , czyli funkcja pierwsza wywołująca funkcję drugą i funkcja druga wywołująca funkcję pierwszą.

Rekurencja bezpośrednia

Kiedy metoda wywołuje samą siebie raz za razem, nazywa się to rekurencją bezpośrednią .

Stan zatrzymania

Teraz będziesz się zastanawiać, czy metoda wywołuje samą siebie raz za razem, to na pewno napotka błąd przepełnienia stosu . Tak, masz rację, podobnie jak nieskończona pętla może przejść w nieskończoną rekurencję. Musimy podać warunek podstawowy lub warunek zakończenia , aby zatrzymać tę nieskończoną rekurencję, znaną jako warunek zatrzymania, a warunek ten jest zawsze zapewniany w metodzie rekurencyjnej, co zobaczymy szczegółowo w poniższym przykładzie.

Przykład rekurencji


class Recursion {

    static int factorial( int n ) {
        // base condition or termination condition
        if (n != 0)  
        // here we are calling the recursive method
            return n * factorial(n-1); 
        else
            return 1;
    }

    public static void main(String[] args) {
        // initializing the variables
        int number = 5, result;
        result = factorial(number);
        System.out.println(number + " factorial = " + result);
        
        // changing the value from 5 to 10
        number = 10;
        result = factorial(number); // recursive function call
        System.out.println(number + " factorial = " + result);
    }
}

Przykładowe wyjście

5 silnia = 120 10 silnia = 3628800
W tym przykładzie metody rekurencyjnej mamy funkcję silni wywoływaną z metody głównej. Przekazaliśmy wartość 5, aby zobaczyć, jaka jest jej silnia, czyli 120. Ta funkcja silni wywołuje się ponownie, przekazując wartość 4, która ponownie wywołuje i przekazuje wartość 3 itd., aż do spełnienia warunku zatrzymania met, czyli wartość 0. To samo dzieje się, gdy zmienimy wartość z 5 na 10.

Zalety i wady rekurencji

Kod rekurencyjny jest prosty do napisania, debugowania i konserwacji, co pozwala zaoszczędzić czas. Ale z drugiej strony przy każdym wywołaniu pamięć jest zużywana na zmienne, przez co może zabraknąć pamięci.

Wniosek

Mamy nadzieję, że rozumiesz rekurencję w Javie i sposób jej implementacji, a także jej zalety i wady. Możesz ćwiczyć i wrócić, gdy będziesz potrzebować dodatkowej pomocy. Miłej nauki!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION