Was ist der Unterschied zwischen einer Rekursitiv und iterativ, beim Programmieren? Ist das nicht das gleiche? Wie kann ich das unterscheiden?

3 Antworten

Ganz vereinfacht gesagt, Rekursiv: Methode ruft sich immer wieder selbst auf, bis das Ergebnis vorhanden ist.

Iterativ, es wird immer wiederholt, bis ein bestimmtes Ergebnis erreicht wurde.

Edit: Hier steht das recht gut erklärt https://java-tutorial.org/iteration_und_rekursion.html

Woher ich das weiß:Berufserfahrung – Freiberuflicher Java Entwickler mit 10 Jahren Erfahrung

Beides sind Schleifenformen.

Die rekursive Schleife arbeitet auf Prozedurebene in der Form, dass sich die Prozedur selbst aufruft, bis ein Rekursionsanker die Rekursion rückwärts auflöst.

Iterative Schleifen sind typischerweise Zählschleifen, meistens in etwa in dieser Form: for(i=...;i<...;i++)

Jede iterative Schleife sollte sich rekursiv darstellen lassen. Andersherum geht das meine ich nicht immer. Eine Stückliste zum Beispiel kann man nicht iterativ auflösen.

Man nutzt allerdings Rekursionen sparsam, da mit jedem Funktionsaufruf im Heap ein Rücksprungszeiger vermerkt wird und das System schnell an seine Grenzen kommen kann und einen Overflow-Fehler wirft.
Rekursionen sind zudem langsamer.

Empfehlung: Immer nur Rekursionen nutzen, wenn es iterativ nicht lösbar ist.

Woher ich das weiß:Berufserfahrung – Programmierer