In diesem Tutorial lernen Sie die rekursive Java-Funktion sowie ihre Vor- und Nachteile kennen.
In Java wird eine Methode, die sich selbst aufruft, als rekursive Methode bezeichnet. Dieser Vorgang wird als Rekursion bezeichnet.
Ein Beispiel für eine physikalische Welt wäre, zwei parallele Spiegel einander gegenüberzustellen. Jedes Objekt dazwischen würde rekursiv reflektiert.
Wie funktioniert Rekursion?

Im obigen Beispiel haben wir die recurse()
Methode innerhalb der main
Methode aufgerufen . (normaler Methodenaufruf). Und innerhalb der recurse () -Methode rufen wir wieder dieselbe recurse-Methode auf. Dies ist ein rekursiver Aufruf.
Um den rekursiven Aufruf zu stoppen, müssen wir einige Bedingungen innerhalb der Methode angeben. Andernfalls wird die Methode unendlich aufgerufen.
Daher verwenden wir die if… else-Anweisung (oder einen ähnlichen Ansatz), um den rekursiven Aufruf innerhalb der Methode zu beenden.
Beispiel: Faktor einer Zahl mit Rekursion
class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )
Ausgabe :
4 Fakultät = 24
Im obigen Beispiel haben wir eine Methode namens factorial()
. Das factorial()
wird von der main()
Methode aufgerufen . mit der als Argument übergebenen Zahlenvariablen.
Beachten Sie hier die Aussage,
return n * factorial(n-1);
Die factorial()
Methode ruft sich selbst auf. Anfangs ist der Wert von n innen 4 factorial()
. Beim nächsten rekursiven Aufruf wird 3 an die factorial()
Methode übergeben. Dieser Vorgang wird fortgesetzt, bis n gleich 0 ist.
Wenn n gleich 0 ist, gibt die if
Anweisung false zurück, daher wird 1 zurückgegeben. Schließlich wird das akkumulierte Ergebnis an die main()
Methode übergeben.
Arbeitsweise des Fakultätsprogramms
Das Bild unten gibt Ihnen eine bessere Vorstellung davon, wie das Fakultätsprogramm mithilfe der Rekursion ausgeführt wird.

Vor- und Nachteile der Rekursion
Bei einem rekursiven Aufruf werden neue Speicherorte für Variablen auf dem Stapel zugewiesen. Da jeder rekursive Aufruf zurückkehrt, werden die alten Variablen und Parameter vom Stapel entfernt. Daher benötigt die Rekursion im Allgemeinen mehr Speicher und ist im Allgemeinen langsam.
Andererseits ist eine rekursive Lösung viel einfacher und benötigt weniger Zeit zum Schreiben, Debuggen und Verwalten.
Literaturempfehlung: Welche Vor- und Nachteile hat die Rekursion?