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 kann man seinen Code leicht zerstören?

Warum kann dies den Code zerstören? Weil es zu unendlicher Rekursion führen kann, die unaufhörlich Speicher verbraucht und die Leistung des Geräts verringert. Warum benötigen wir also überhaupt Rekursion? In bestimmten Fällen kann Rekursion nützlich sein, sollte jedoch mit Vorsicht eingesetzt werden. Beispielsweise kann Rekursion eine while-Schleife ersetzen. Betrachten wir ein Beispiel für die Verwendung von Rekursion zur Berechnung der Summe aller Zahlen bis zu einer als Parameter übergebenen Zahl:

Main.java

Main.java

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 verringerten Werten auf. Es gibt zudem einen Austrittspunkt 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. Betrachten wir das Flussdiagramm, das zeigt, wie Rekursion anhand dieser Methode funktioniert:

Das obige Beispiel zeigt, wie die Methode sich selbst aufruft mit verringerten Werten und, sobald sie null erreicht, durch das Aufsummieren der Werte wieder nach oben geht. Es ist ebenfalls zu erkennen, wie der Rumpf des if-Blocks ausgeführt wird, wobei num zum Ergebnis des Methodenaufrufs mit reduziertem Wert addiert wird. Die Zwischenwerte nach jedem Methodenaufruf sind an den Pfeilen angegeben.

Können wir auf Rekursion verzichten?

Rekursion kann auch durch eine normale Schleife ersetzt werden. Sehen wir uns ein Beispiel an, bei dem zunächst eine rekursive Methode und anschließend eine for-Schleife verwendet wird, um die gleiche Operation durchzuführen:

Main.java

Main.java

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, wobei die Variable i verwendet wird, um unser result bei jedem Durchlauf um i zu erhöhen, bis es die angegebene Zahl num erreicht, die als Parameter an die Methode übergeben wird.

Fazit

Zusammenfassend können rekursive Methoden nützlich, aber auch riskant sein. Rekursion kann häufig durch Schleifen ersetzt werden. Während sie bestimmte Aufgaben vereinfachen kann, kann sie auch Probleme verursachen, wenn sie nicht sorgfältig verwendet wird. Wenn Sie sich entscheiden, Rekursion zu verwenden, gehen Sie auch mit Erfahrung stets vorsichtig vor.

1. Was ist Rekursion in Java?

2. Was ist besser zu verwenden, Rekursion oder eine normale Schleife?

question mark

Was ist Rekursion in Java?

Select the correct answer

question mark

Was ist besser zu verwenden, Rekursion oder eine normale Schleife?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Java Erweitert

Java Erweitert

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

book
Rekursion

Wie kann man seinen Code leicht zerstören?

Warum kann dies den Code zerstören? Weil es zu unendlicher Rekursion führen kann, die unaufhörlich Speicher verbraucht und die Leistung des Geräts verringert. Warum benötigen wir also überhaupt Rekursion? In bestimmten Fällen kann Rekursion nützlich sein, sollte jedoch mit Vorsicht eingesetzt werden. Beispielsweise kann Rekursion eine while-Schleife ersetzen. Betrachten wir ein Beispiel für die Verwendung von Rekursion zur Berechnung der Summe aller Zahlen bis zu einer als Parameter übergebenen Zahl:

Main.java

Main.java

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 verringerten Werten auf. Es gibt zudem einen Austrittspunkt 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. Betrachten wir das Flussdiagramm, das zeigt, wie Rekursion anhand dieser Methode funktioniert:

Das obige Beispiel zeigt, wie die Methode sich selbst aufruft mit verringerten Werten und, sobald sie null erreicht, durch das Aufsummieren der Werte wieder nach oben geht. Es ist ebenfalls zu erkennen, wie der Rumpf des if-Blocks ausgeführt wird, wobei num zum Ergebnis des Methodenaufrufs mit reduziertem Wert addiert wird. Die Zwischenwerte nach jedem Methodenaufruf sind an den Pfeilen angegeben.

Können wir auf Rekursion verzichten?

Rekursion kann auch durch eine normale Schleife ersetzt werden. Sehen wir uns ein Beispiel an, bei dem zunächst eine rekursive Methode und anschließend eine for-Schleife verwendet wird, um die gleiche Operation durchzuführen:

Main.java

Main.java

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, wobei die Variable i verwendet wird, um unser result bei jedem Durchlauf um i zu erhöhen, bis es die angegebene Zahl num erreicht, die als Parameter an die Methode übergeben wird.

Fazit

Zusammenfassend können rekursive Methoden nützlich, aber auch riskant sein. Rekursion kann häufig durch Schleifen ersetzt werden. Während sie bestimmte Aufgaben vereinfachen kann, kann sie auch Probleme verursachen, wenn sie nicht sorgfältig verwendet wird. Wenn Sie sich entscheiden, Rekursion zu verwenden, gehen Sie auch mit Erfahrung stets vorsichtig vor.

1. Was ist Rekursion in Java?

2. Was ist besser zu verwenden, Rekursion oder eine normale Schleife?

question mark

Was ist Rekursion in Java?

Select the correct answer

question mark

Was ist besser zu verwenden, Rekursion oder eine normale Schleife?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7
some-alt