Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Rekursion | Methoden
Java Erweitert
course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Rekursion

Wie man seinen Code leicht kaputt macht?

Warum kann dies den Code brechen? Weil es zu einer endlosen Rekursion führen kann, die unaufhörlich Speicher verbraucht und die Leistung des Geräts verringert. Warum brauchen wir überhaupt Rekursion? In einigen Fällen kann Rekursion nützlich sein, sollte jedoch mit Vorsicht verwendet werden. Zum Beispiel kann Rekursion eine while-Schleife ersetzen. Schauen wir uns ein Beispiel an, wie Rekursion verwendet wird, um die Summe aller Zahlen bis zu einer als Parameter übergebenen Zahl zu berechnen:

java

Main

copy
1234567891011121314151617181920
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below System.out.println(calculateSum(5)); } // method to calculate the sum of numbers from 1 to num using recursion static int calculateSum(int num) { // if num is greater than 0, recursively calculate the sum if (num > 0) { num = num + calculateSum(num - 1); } else { return 0; } return num; } }

Die Methode calculateSum() ruft sich selbst mit reduzierten Werten auf. Wir haben auch einen Ausstiegspunkt aus dieser Rekursion, wenn die Variable num null wird. Diese Methode berechnet die Summe aller Zahlen von 1 bis zum Parameter, in unserem Fall 5. Schauen wir uns das Flussdiagramm an, das zeigt, wie Rekursion funktioniert, indem wir diese Methode als Beispiel verwenden:

Das obige Beispiel zeigt, wie die Methode sich selbst aufruft mit reduzierten Werten, und wenn sie null erreicht, geht sie zurück, indem sie die Werte summiert. Wir können auch beobachten, wie der Körper des if-Blocks ausgeführt wird, wo wir num zum Ergebnis des Methodenaufrufs mit einem reduzierten Wert hinzufügen. Die Zwischenwerte nach jedem Methodenaufruf sind in der Nähe der Pfeile angegeben.

Können wir die Rekursion vermeiden?

Rekursion kann auch durch eine normale Schleife ersetzt werden. Schauen wir uns ein Beispiel an, bei dem wir zuerst eine rekursive Methode verwenden und dann eine for-Schleife, um die gleiche Operation auszuführen:

java

Main

copy
123456789101112131415161718192021222324252627282930313233
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int num = 5; // printing the result of the recursive sum calculation System.out.println("Result using recursion: " + calculateSum(num)); int result = 0; // calculating the sum using a for-loop for (int i = 1; i <= num; i++) { result = result + i; } // printing the result of the sum calculation using the for-loop System.out.println("Result using for-loop: " + result); } // method to calculate the sum of numbers from 1 to num using recursion static int calculateSum(int num) { // if num is greater than 0, recursively calculate the sum if (num > 0) { num = num + calculateSum(num - 1); } else { return 0; } return num; } }

Hier sehen wir, wie wir unsere rekursive Methode durch eine reguläre for-Schleife ersetzen, indem wir die Variable i verwenden, um unser result jedes Mal um i zu erhöhen, bis es die angegebene Zahl num erreicht, die der Parameter in der Methode ist.

Fazit

Zusammenfassend lässt sich sagen, dass rekursive Methoden nützlich, aber auch riskant sein können. Rekursion kann oft durch Schleifen ersetzt werden, und obwohl sie bestimmte Aufgaben vereinfachen kann, kann sie auch Probleme verursachen, wenn nicht sorgfältig verwendet. Wenn Sie sich entscheiden, Rekursion zu verwenden, gehen Sie auch mit Erfahrung vorsichtig vor.

1. Was ist Rekursion in Java?

2. Was ist besser zu verwenden, Rekursion oder eine reguläre Schleife?

Was ist Rekursion in Java?

Was ist Rekursion in Java?

Wählen Sie die richtige Antwort aus

Was ist besser zu verwenden, Rekursion oder eine reguläre Schleife?

Was ist besser zu verwenden, Rekursion oder eine reguläre Schleife?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7
We're sorry to hear that something went wrong. What happened?
some-alt