Die Notwendigkeit, Code zu wiederholen, kann bei der Suche nach Lösungen für einige der größten Probleme der Welt nie unterschätzt werden. Was Sie wissen müssen, ist, dass die Wiederholung beim Programmieren eine von zwei Formen annimmt - Iteration oder Rekursion.
Ziel ist es, Ihnen die Wiederholung von Code vorzustellen und zu demonstrieren, wie Sie damit Ihre Java-Programme verbessern können.
Wiederholte Programme können Ihnen helfen, einige der schwierigsten Programmierprobleme zu lösen. Folgendes müssen Sie wissen, um rekursive Programme in Java zu erstellen.
Iteration verwenden
Die Iteration verwendet eine Schleifenstruktur, um den Code zu wiederholen. Die drei Arten von iterativen Strukturen sind Pre-Test-Loop (while), Post-Test-Loop (do-while) und Gegenregelkreis (für).
Diese iterativen Strukturen wiederholen einen Codeblock, während eine bestimmte Bedingung bestehen bleibt true, aber sobald diese Bedingung false wird, stoppt die Schleife und das Programm kehrt zu seiner Normalität zurück fließen.
Zum Beispiel könnten wir eine der iterativen Strukturen verwenden, um das Problem der Summe aller ganzen Zahlen von 1 bis n zu lösen. Abhängig von der verwendeten iterativen Struktur nimmt die Lösung eine bestimmte Form an, jedoch eine von Die drei iterativen Strukturen können eine Lösung für dieses Problem unter Verwendung der folgenden bereitstellen Pseudocode.
Beispiel für einen Iterationspseudocode
START
DECLEARE Summe, als Ganzzahl zählen
Summe = 0
count = 1
WIEDERHOLEN
Summe = Summe + Anzahl
Anzahl = Anzahl + 1
BIS Anzahl> n
ENDE
Der obige Pseudocode enthält zwei Variablen, sum und count, die auf 0 bzw. 1 initialisiert sind. Die Variable "count" wird auf 1 initialisiert, da das Problem, das wir zu lösen versuchen, besagt, dass wir die Summe aller ganzen Zahlen von 1 bis n benötigen.
Der Variablen "n" wird vom Benutzer eine Zufallszahl zugewiesen, und die Variable "count" wird jeweils um eins erhöht Wenn eine Schleife ausgeführt wird, aber sobald der Wert der Variablen "count" den Wert von "n" überschreitet, wird die Schleife ausgeführt Stopp.
Warum Rekursion verwenden?
Wenn wir die Fakten rund um Iteration und Rekursion untersuchen, werden wir feststellen, dass mehrere Dinge wahr sind.
- Beide Methoden beinhalten Wiederholungen.
- Beide Methoden erfordern eine Testbedingung, die angibt, wann zu stoppen ist.
- Beide Methoden können theoretisch für immer ausgeführt werden, wenn eine Exit-Bedingung nicht gegeben oder erfüllt ist.
- Jedes Problem, das mit Iteration gelöst werden kann, kann auch mit Rekursion gelöst werden und umgekehrt.
Warum sollten wir also eine Methode der anderen vorziehen wollen? Die einfache Antwort lautet Effizienz. Mit der Rekursion kann ein Programmierer weniger Code verwenden, um das im Wesentlichen gleiche Ergebnis zu erzielen. Weniger Code bedeutet, dass die Wahrscheinlichkeit, dass Fehler unbemerkt bleiben, erheblich abnimmt.
Die Rekursion benötigt mehr Speicher und ist langsamer als die Iteration, verfügt jedoch über einen integrierten Stapel (Datenstruktur). Mit der Iteration müssten Sie eine Datenstruktur erstellen (im Wesentlichen das Rad neu erfinden), sodass Ihr Programm aufgrund des zusätzlichen Codes einer größeren Wahrscheinlichkeit von nicht erfassten Fehlern ausgesetzt ist.
Verbunden: Java-Ausnahmen: Behandeln Sie sie richtig?
Wie funktioniert die Rekursion?
Rekursion ist der Name eines Prozesses, bei dem sich eine Funktion wiederholt aufruft, bis eine bestimmte Bedingung erfüllt ist. Diese sich wiederholende Methode löst Probleme, indem sie in kleinere, einfachere Versionen von sich selbst zerlegt wird.
Jede rekursive Funktion besteht aus zwei Teilen - dem Basisfall und dem allgemeinen Fall.
Grundstruktur eines rekursiven Funktionsbeispiels
Funktion(){
// Basisfall
//Allgemeiner Fall
}
Der Basisfall ist der Abschnitt der rekursiven Funktion, der das Problem löst. Wenn also die rekursive Funktion im Basisfall ankommt, verlässt das Programm die rekursive Funktion und setzt ihren natürlichen Ablauf fort.
Der allgemeine Fall ist der Abschnitt der rekursiven Funktion, der sich wiederholt. Hier ruft sich die Funktion selbst auf und der Großteil der Arbeit wird erledigt.
Rekursion in Java verwenden
Einige Programmiersprachen unterstützen nur die Iteration, während andere nur die Rekursion unterstützen. Glücklicherweise ist Java eine der Sprachen, die beide sich wiederholenden Methoden unterstützen.
In Java wird die Rekursion ähnlich wie in jeder anderen Sprache verwendet, die sie unterstützt. Der Schlüssel besteht darin, immer sicherzustellen, dass Ihre rekursive Funktion sowohl einen Basis- als auch einen allgemeinen Fall in dieser Reihenfolge hat.
Kehren wir zu unserem ersten Summierungsbeispiel zurück. Ziel ist es, die Summe aller Ganzzahlen von 1 bis n zu ermitteln, wobei n eine vom Benutzer angegebene Ganzzahl ist.
Java-Rekursionsbeispiel
// rekursive Funktion
int Summe (int n) {
// Basisfall
if (n <= 1) {
return 1;
}
//Allgemeiner Fall
sonst{
Rückgabe n + Summe (n-1);
}
}
Die obige rekursive Funktion nimmt eine ganze Zahl "n" und beendet ihre Ausführung nur, wenn der Wert von n kleiner oder gleich 1 ist.
Wenn wir die ganze Zahl 5 an das obige Programm übergeben würden, würde die Variable "n" den Wert 5 annehmen. Der Wert von "n" würde dann im Basisfall überprüft, aber wenn 5 größer als 1 ist, wird "n" jetzt an den allgemeinen Fall übergeben.
In diesem Beispiel ruft der allgemeine Fall die rekursive Funktion viermal auf. Beim letzten Funktionsaufruf ist der Wert von "n" 1, was effektiv die Anforderungen des Basisfalls erfüllt, was zur Beendigung der rekursiven Funktion und zur Rückgabe von 15 führt.
Wenn wir den Wert von "n" auf 7 ändern, ruft sich die rekursive Funktion sechsmal auf und gibt 28 zurück, bevor die Ausführung beendet wird.
Möchten Sie es selbst ausprobieren? Sie können das oben beschriebene rekursive Programm ausführen, indem Sie die folgende Codezeile in der Hauptfunktion Ihres Java-Programms verwenden.
System.out.println (Summe (7));
Was du gelernt hast
Wenn Sie diesen gesamten Artikel durchgearbeitet haben, haben Sie jetzt ein grundlegendes Verständnis der beiden sich wiederholenden Methoden, die bei der Programmierung verwendet werden. Sie erkennen jetzt die Ähnlichkeiten zwischen Iteration und Rekursion und warum ein Entwickler Rekursion anstelle von Iteration verwenden würde und wie eine rekursive Funktion in Java verwendet wird.
Bildnachweis: ThisIsEngineering /Pexels
Lernen Sie die Grundlagen der Rekursion, dem wesentlichen, aber leicht umwerfenden Werkzeug für Programmierer.
Weiter lesen
- Programmierung
- Java
Kadeisha Kean ist ein Full-Stack-Softwareentwickler und technischer / technologischer Redakteur. Sie hat die ausgeprägte Fähigkeit, einige der komplexesten technologischen Konzepte zu vereinfachen. Herstellung von Material, das von jedem Technologie-Neuling leicht verstanden werden kann. Sie schreibt leidenschaftlich gern, entwickelt interessante Software und bereist die Welt (durch Dokumentarfilme).
Abonnieren Sie unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Noch ein Schritt…!
Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.