Rekursion đŸ˜”

Besser als bei Wikipedia wird die Definition nicht - deshalb an dieser Stelle ein Zitat:

Als Rekursion (lateinisch recurrere ‚zurĂŒcklaufen‘) bezeichnet man den abstrakten Vorgang, dass Regeln auf ein Produkt, das sie selbst erzeugt haben, von neuem angewandt werden. — Wikipedia

Beim Programmieren findet Rekursion zum Beispiel dann statt, wenn eine Methode sich selbst aufruft. Vorsichtig sollte man natĂŒrlich mit potenziellen 👉 Endlosschleifen sein - es muss immer irgendwann einen Zustand geben, in dem die Rekursion “fertig” ist.

Ein klassisches Standard-Beispiel ist eine Methode zur Errechnung der FakultĂ€t einer Zahl. Mathematisch definiert sich die FakultĂ€t einer (natĂŒrlichen) Zahl n (also n!) als das Produkt aller natĂŒrlichen Zahlen von 1 bis n (also der Zahl selbst):

public int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

Oder noch kĂŒrzer:

public int factorial(int n) {
    return (n == 0) ? 1 : (n * factorial(n - 1));
}

Dieses Beispiel zeigt auf sehr einfache Weise, worum es geht: Die Methode ruft sich selbst auf. Generell bietet sich eine Rekursion unter UmstĂ€nden dann an, wenn ein und dieselbe Operation auf mehrere “gleichartige” Elemente angewandt werden soll. Im Beispiel oben ist es eben die Multiplikation der Zahl mit der FakultĂ€t der nĂ€chst kleineren Zahl. Der Abbruch erfolgt dann, wenn n den Wert 0 erreicht, denn 0! ist immer 1 (das ist so festgelegt).

Andere typische Anwendungsbeispiele fĂŒr Rekursion sind die Errechnung der Fibonacci-Zahlen oder das Durchsuchen (o.Ă€.) von Ordnern, deren Unterordnern, deren Unterordnern usw.
Die Funktionsweise von rekursiven Methoden zu verstehen ist anfangs nicht ganz einfach. Eine sehr gute Übung es, eine Methode zu implementieren, die alle Dateien eines Ordners auflistet (auch jene aus allen Unterordnern) und den Ablauf dieser Methode genau nachzuvollziehen.

Rekursion

Quelle: #, konczakowski

🔗 Sehr gute Informationen zum Thema Rekursion findest du hier!