Was ist der Unterschied zwischen Rekursion und Schleife

Das Hauptunterschied zwischen Rekursion und Schleife ist das Rekursion ist ein Mechanismus, um eine Funktion innerhalb derselben Funktion aufzurufen, während Loop eine Kontrollstruktur ist, die dazu beiträgt, einen Befehlssatz immer wieder auszuführen, bis die angegebene Bedingung erfüllt ist.

Rekursion und Schleife sind zwei Programmierkonzepte. Diese beiden Techniken helfen dabei, kleine bis komplexe Programme zu entwickeln.

Wichtige Bereiche

1. Was ist Rekursion?
- Definition, Funktionalität
2. Was ist Loop?
- Definition, Funktionalität
3. Was ist der Unterschied zwischen Rekursion und Schleife
- Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Do While Loop, For Loop, Loop, Rekursion, While Loop

Was ist Rekursion?

Wenn sich eine Funktion innerhalb der Funktion aufruft, spricht man von Rekursion. Ein Beispiel für ein Programm mit Rekursion ist die Berechnung der Fakultät.

n! = n * (n-1) !, wenn n> 0 ist

n! = 1, wenn n = 0 ist;

Abbildung 1: Factorial-Programm in Java

Gemäß dem obigen Programm wird ein Objekt von Factorial erstellt. Dann ruft er mit diesem Objekt die Methode Fakultät auf. Die Methode erhält den Wert 4. Als Nächstes wird der else-Abschnitt ausgeführt. Danach nennt man Fakultät (3). Dann wird der else-Abschnitt ausgeführt. Es nennt Fakultät (2). Als Nächstes wird der else-Abschnitt ausgeführt. Es ruft Fakultat (1) auf, und der else-Abschnitt wird erneut ausgeführt. Es ruft die Fakultät (0) auf. Nun ist n gleich 0. Es wird 1 zurückgegeben. Schließlich wird 1x2x3x4 = 24 zurückgegeben und diese Werte werden auf dem Bildschirm angezeigt. Ebenso ruft sich eine Fakultät immer wieder auf.

Was ist Loop?

Manchmal ist es erforderlich, einen Codeblock wiederholt auszuführen. Programmiersprachen stellen eine Steuerungsstruktur bereit, die als Schleife bezeichnet wird, um einen Satz von Anweisungen auszuführen. Die Schleife führt eine Anweisung innerhalb des Blocks nacheinander aus. Es gibt drei Arten von Schleifen: While-Schleife, für Schleife und Do-Schleife. Darüber hinaus ein Iteration bezieht sich auch auf eine Schleife.

While-Schleife

Eine while-Schleife enthält einen Testausdruck. Wenn dieser Ausdruck wahr ist, werden die Anweisungen in der while-Schleife ausgeführt. Am Ende der Anweisungen wird der Testausdruck erneut geprüft. Dieser Vorgang wird dann wiederholt, bis der Testausdruck falsch wird. Wenn der Testausdruck falsch ist, wird die while-Schleife beendet. Dann geht das Steuerelement an die erste Anweisung nach der while-Schleife weiter.

Abbildung 2: Programmieren mit while-Schleife

Im obigen Programm ist x 5. Es ist weniger als 10. Daher wird gedruckt. Dann erhöht sich der x-Wert. Nun ist x 6. Es ist auch weniger als 10; Daher wird es gedruckt. Dann wird der x-Wert erneut erhöht. Jetzt ist x 7. Damit wiederholt sich dieser Vorgang. Wenn x 10 ist, ist die Bedingung falsch und die Schleife wird beendet.

Für Schleife

Die Schleife enthält die Initialisierung, den Testausdruck und das Update. Der Initialisierungsausdruck wird einmal ausgeführt. Dann wertet es den Testausdruck aus. Ist dies der Fall, werden die Anweisungen in der for-Schleife ausgeführt. Am Ende der Schleife wird der aktualisierte Ausdruck ausgewertet. Daher wiederholt sich dieser Prozess, bis der Testausdruck falsch ist. Wenn es falsch ist, endet die for-Schleife. Dann geht das Steuerelement zur nächsten Anweisung nach der for-Schleife über.

Abbildung 3: Programm mit For-Schleife

In der obigen for-Schleife ist x-Wert 1. Es ist weniger als 5. Der Wert wird also gedruckt. Dann erhöht sich der x-Wert um 1. Nun ist der x-Wert 2. Er ist auch kleiner als 5. Daher wird er gedruckt. Dann erhöht sich der x-Wert um 1. Nun ist x 3. Dieser Vorgang wird wiederholt. Wenn x 6 ist, wird die Testbedingung falsch und die Schleife wird beendet.

Während der Schleife machen

Die while-Schleife ist der while-Schleife ähnlich, prüft jedoch die Bedingung, nachdem die Schleifenanweisungen ausgeführt wurden. Unabhängig davon, ob die Bedingung wahr oder falsch ist, wird die Schleife mindestens einmal ausgeführt. Hier wird die Bedingung geprüft, nachdem die Schleife ausgeführt wurde. Wenn die Bedingung erfüllt ist, werden die Schleifenanweisungen erneut ausgeführt. Dieser Vorgang wird wiederholt, bis die Bedingung falsch wird.

Abbildung 4: Programmieren mit Do While-Loop

Der x-Wert ist anfangs 5. Die do while-Schleife wird ausgeführt und gibt den Wert 5 aus. Dann wird x zu 6. Es ist weniger als 10. Also wird 6 gedruckt. Als nächstes wird x zu 7. Es ist auch weniger als 10. Und dieser Vorgang wiederholt sich. Wenn x 9 ist, wird der Wert gedruckt. Wenn x jedoch 10 wird, wird die Bedingung falsch. Daher endet die Schleife.

Nehmen Sie beispielsweise an, dass x anfangs 20 ist. Es wird 20 gedruckt. Dann wird x inkrementiert, und x wird 21. Die Testbedingung ist falsch. Daher wird die Schleife beendet. Der Wert 20 ist höher als 10 und die Testbedingung ist falsch. Die Schleife wird jedoch einmal ausgeführt. Do while-Schleife wird daher mindestens einmal ausgeführt.

Unterschied zwischen Rekursion und Schleife

Definition

Rekursion ist eine Methode zum Aufrufen einer Funktion innerhalb derselben Funktion. Im Gegensatz dazu ist Schleife eine Kontrollstruktur, die die wiederholte Ausführung eines Codeblocks innerhalb des Programms ermöglicht. Diese Definitionen enthalten den grundlegenden Unterschied zwischen Rekursion und Schleife.

Geschwindigkeit

Geschwindigkeit ist ein Hauptunterschied zwischen Rekursion und Schleife. Die Rekursionsausführung ist langsamer. Die Schleife wird jedoch schneller als die Rekursion ausgeführt.

Stapel

In Rekursion wird der Stack verwendet, um die lokalen Variablen zu speichern, wenn die Funktion aufgerufen wird. Die Schleife verwendet jedoch keinen Stack.

Bedingung

Wenn keine Beendigungsbedingung vorliegt, kann dies eine unendliche Rekursion sein. Wenn die Bedingung jedoch nie falsch wird, handelt es sich um eine Endlosschleife. Dies ist ein weiterer Unterschied zwischen Rekursion und Schleife.

Raumkomplexität

Darüber hinaus ist die Platzkomplexität des rekursiven Programms höher als eine Schleife.

Lesbarkeit des Codes

Ein weiterer Unterschied zwischen Rekursion und Schleife besteht darin, dass ein Programm mit Rekursion besser lesbar ist als ein Programm mit Schleifen.

Fazit

Der Unterschied zwischen Rekursion und Schleife besteht darin, dass Rekursion ein Mechanismus zum Aufrufen einer Funktion innerhalb derselben Funktion ist, während Loop eine Kontrollstruktur ist, die die Ausführung eines Satzes von Anweisungen immer wieder ermöglicht, bis die angegebene Bedingung erfüllt ist.

Referenz:

1. „Rekursion (Informatik)“. Wikipedia, Wikimedia Foundation, 12. September 2018, hier verfügbar.
2. "Java Loop Control". Www.tutorialspoint.com, hier erhältlich.