Was ist eine Schwanzrekursion?
Tail Rekursion 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. 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 ein CODie NTROL-Struktur ist keine Programmieranweisung, sondern ein integrierter Teil der Computersprache. In vielen Computersprachen, einschließlich Java und C ++, gibt es eine Schwanzrekursion. Häufig können diese rekursiven Anrufe mit anderen Mitteln, z. B. 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 oft der sauberste und einfachste Weg, um sich wiederholende Aufgaben zu erfüllen.
Ein häufiges Beispiel für die Schwanzrekursion ist eine Methode, die das Faktor einer Zahl berechnet. Dieser Vorgang ist ideal, da nach 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 Faktor 1 ist, return 1, geben Sie ansonsten das Fakultät der Nummer G zurückan die Methode minus eins. Diese Methode ist auch nützlich, da sie mit oder ohne Kontrollanweisung um einen endgültigen Methodenaufruf äquivalent mit einer Art von Schwanzrekursion geschrieben werden kann.
Schwanzrekursion ist nur ein Beispiel für die mehreren Rekursionsarten. 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 Schwanzrekursion, dass der Wert eines rekursiven Anrufs sofort zurückgegeben wird und nach diesem Anruf nichts anderes in der Anrufmethode passiert.