Skip to main content

Was ist eine Schwanzrekursion?

Die Schwanzrekursion ist eine Art Programmiermethode, bei der sich eine Methode selbst aufruft, und gibt dann sofort den Wert dieses zweiten Aufrufs zurück.Mit anderen Worten, die Schwanzrekursion tritt auf, wenn die endgültige Aussage innerhalb einer Methode ein weiterer Aufruf derselben Methode ist.Die Parameter im zweiten Methodenaufruf unterscheiden sich im Allgemeinen von denen des ersten, dies ist jedoch nicht erforderlich.Damit diese Rekursion funktioniert, muss die Methode, die in sich aufgerufen wird, einen konkreten Wert wie eine Zahl, eine Zeichenfolge oder ein anderes Objekt zurückgeben.Void -Methoden, die keinen Wert zurückgeben, funktionieren nicht gut für die Rekursion.

Die Anforderung, dass ein rekursiver Anruf die letzte Aussage in seiner aufrufenden Methode sein muss, bedeutet nicht unbedingt, dass der rekursive Anruf die letzte Zeile in der Methode ist.In einer Kontrollstruktur kann auch ein ordnungsgemäßer Schwanzrekursionsaufruf gefunden werden, was bedeutet, dass in Quellcode die Kontrollstruktur die Methode und den Aufruf eher beenden kann.Die wichtige Unterscheidung in diesem Fall ist, dass eine Kontrollstruktur keine Programmieranweisung ist, sondern ein integrierter Teil der Computersprache.

Die Schwanzrekursion gibt es in vielen Computersprachen, einschließlich Java und C ++.Häufig können diese rekursiven Anrufe mit anderen Mitteln wie für Schleifen, während Schleifen oder GOTO -Aussagen umgeschrieben werden.Die Nützlichkeit der Rekursion wird gefunden, wenn viele sequentielle Aufrufe derselben Methode erstellt werden.Rekursion ist häufig die sauberste und einfachste Möglichkeit, sich wiederholende Aufgaben zu erfüllen.Dieser Vorgang ist ideal, da mit einer beliebigen Zahl jede Zahl, bevor er miteinander multipliziert wird.Um das Faktor von 5 zu finden, wäre der richtige Prozess, um 5*4*3*2*1 zu multiplizieren.Die Rekursion kommt aufgrund der Struktur der faktoriellen Methode ein: Wenn das Fakultät 1, Rückgabe 1 ist, geben Sie ansonsten die Fakultät der Anzahl zurück, die der Methode minus eins angegeben ist.Diese Methode ist auch nützlich, da sie mit oder ohne Kontrollanweisung um einen endgültigen Methodenaufruf äquivalent geschrieben werden kann.Das Konzept in allen Arten von Rekursion ist im Wesentlichen gleich, dass sich eine Methode in gewisser Weise selbst nennt.Von diesen Typen ist die Unterscheidung der Schwanzreursion, dass der Wert eines rekursiven Anrufs sofort zurückgegeben wird und nach diesem Anruf nichts anderes in der Anrufmethode passiert.