Heim >häufiges Problem >Was bedeutet rekursiver Aufruf einer Funktion?

Was bedeutet rekursiver Aufruf einer Funktion?

angryTom
angryTomOriginal
2019-07-24 14:38:2115965Durchsuche

Was bedeutet rekursiver Aufruf einer Funktion?

Empfohlenes Tutorial: Java-Tutorial

Rekursive Definition

Der rekursive Aufruf besteht darin, die aktuelle Funktion in der aktuellen Funktion aufzurufen und die entsprechenden Parameter zu übergeben. Diese Aktion wird Schicht für Schicht ausgeführt, bis die allgemeine Situation erfüllt ist. Stoppen Sie den rekursiven Aufruf und beginnen Sie mit der Rückkehr vom letzten rekursiven Aufruf.

Detaillierte Erklärung der Rekursion

Vor dem Aufruf

Wenn eine Funktion während des Aufrufs eine andere Funktion aufruft Vor dem Ausführen der aufgerufenen Funktion muss das System drei Dinge ausführen:

 (1) Übergeben Sie alle tatsächlichen Parameter, Rückgabeadressen und andere Informationen zur Speicherung an die aufgerufene Funktion.

 (2 ) Speicherbereich für lokale Variablen der aufgerufenen Funktion zuweisen

(3) Kontrolle an den Eingang der aufgerufenen Funktion übergeben.

Aufruf

Bevor von der aufgerufenen Funktion zur aufrufenden Funktion zurückgekehrt wird, sollte das System außerdem drei Aufgaben erledigen:

(1) Speichern Sie die aufgerufene Funktion Funktion Das Berechnungsergebnis der Funktion;

(2) Geben Sie den Datenbereich der aufgerufenen Funktion frei

(3) Übertragen Sie die Steuerung entsprechend der von gespeicherten Rücksprungadresse die aufgerufene Funktion. Wenn mehrere Funktionen verschachtelte Aufrufe bilden, gilt das Prinzip, nach dem letzten Aufruf zuerst zurückzukehren.

Merkmale rekursiver Funktionen

Die Strukturen aller rekursiven Funktionen sind ähnlich.

(1) Die Funktion muss sich selbst direkt oder indirekt aufrufen.

(2) Es muss eine Überprüfung der rekursiven Beendigungsbedingung erfolgen, dh nachdem die rekursive Beendigungsbedingung erfüllt ist, wird die eigene Funktion nicht mehr aufgerufen.

  (3) Wenn die Bedingungen für die rekursive Beendigung nicht erfüllt sind, wird der Ausdruck aufgerufen, der den rekursiven Aufruf beinhaltet. Wenn die Funktion selbst aufgerufen wird, müssen sich die Parameter im Zusammenhang mit der Beendigungsbedingung ändern, und zwar in Richtung der rekursiven Beendigung.

Zusammenfassung

  Das Funktionsaufrufprinzip stimmt mit der Implementierung des Datenstrukturstapels überein. Es zeigt auch, dass Funktionsaufrufe über den Stack implementiert werden.

Das obige ist der detaillierte Inhalt vonWas bedeutet rekursiver Aufruf einer Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn