Zum Inhalt springen

Rekursion

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 19.10.2026

Rekursion heißt, dass eine Funktion sich selbst aufruft, um ein Problem in kleinere Ausgaben derselben Art zu zerlegen.

Rekursion

Ein Verfahren, bei dem eine Funktion sich selbst aufruft, um eine kleinere Ausgabe desselben Problems zu lösen.
Beispiel: „Die Rekursion läuft durch den Menübaum und holt zu jedem Eintrag dessen Unterpunkte.“

Herkunft: lateinisch recurrere, zurücklaufen.

Abgrenzung zur Schleife: Die Schleife wiederholt an Ort und Stelle. Die Rekursion legt mit jedem Aufruf eine neue Ebene an und baut sie beim Zurücklaufen wieder ab.

Zwei Teile, von denen keiner fehlen darf

Der eine ist der Abbruchfall: die Ausgabe, die ohne weiteren Aufruf beantwortet wird. Der andere ist der Schritt, der die Aufgabe verkleinert und sich selbst erneut aufruft. Fehlt der Abbruch oder wird die Aufgabe nicht kleiner, läuft die Sache bis zum Absturz.

Der Fehler heißt Stapelüberlauf: Jeder Aufruf belegt Platz, und irgendwann ist er aufgebraucht. Anders als bei einer Endlosschleife bricht das Programm dabei mit einer deutlichen Meldung ab.

function alleSeiten(eintrag) {
  const gesammelt = [eintrag.titel];
  for (const kind of eintrag.kinder) {
    // der Aufruf an sich selbst, eine Ebene tiefer
    gesammelt.push(...alleSeiten(kind));
  }
  return gesammelt;        // Abbruch: keine Kinder, keine Aufrufe
}

Wo sie in der Webarbeit vorkommt

Überall dort, wo etwas verschachtelt ist und die Tiefe nicht feststeht. Ein Navigationsbaum mit Unterpunkten, eine Dateistruktur, Kommentare mit Antworten auf Antworten. Mit einer Schleife wäre dafür bei jeder Ebene eine weitere Schleife nötig.

In Statamic und TYPO3 arbeiten die Vorlagen für mehrstufige Menüs genau so. Deshalb taucht der Begriff in Projektgesprächen auf, sobald ein Menü mehr als zwei Ebenen bekommen soll.

Wann eine Schleife besser ist

Wenn die Aufgabe flach ist. Über eine Liste zu laufen ist mit einer Schleife kürzer und für die meisten leichter zu lesen. Die Rekursion lohnt sich dort, wo die Daten selbst eine Baumform haben.

Siehe auch:

Funktionen

Ein benannter Abschnitt Code, der sich von anderer Stelle aufrufen lässt.

#Programmiersprachen

Schleife (Loop)

Wiederholt denselben Abschnitt Code, solange eine Bedingung zutrifft.

#Programmiersprachen

Kontrollstruktur

Bestimmt, in welcher Reihenfolge die Zeilen eines Programms ausgeführt werden.

#Programmiersprachen

Arrays

Eine Liste von Werten in fester Reihenfolge, angesprochen über ihre Position.

#Programmiersprachen