Heute wirst du lernen:
Am Ende wirst du in der Lage sein, rekursive Methoden zu schreiben und zu verstehen, wie Rekursion in Java funktioniert.
Methodenüberladung erlaubt es dir, mehrere Methoden mit demselben Namen, aber unterschiedlichen Parametern zu erstellen.
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
Erklärung:
Eine rekursive Methode ruft sich selbst auf, bis eine Abbruchbedingung erfüllt ist.
public static int factorial(int n) {
if(n == 0) return 1;
return n * factorial(n - 1);
}
System.out.println(factorial(5)); // 120
Erklärung:
n == 0)
public static int factorial(int n) {
if(n == 0) return 1;
return n * factorial(n - 1);
}
public static int fibonacci(int n) {
if(n == 0) return 0;
if(n == 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
Tail-Rekursion ist eine Art der Rekursion, bei der der rekursive Aufruf die letzte Operation ist.
Beispiel (Fakultät mit Tail-Rekursion):
public static int factorialTail(int n, int result) {
if(n == 0) return result;
return factorialTail(n - 1, n * result);
}
Hinweis:
StackOverflowError verursachen
public static int factorial(int n) {
if(n == 0) return 1;
return n * factorial(n - 1);
}
System.out.println(factorial(5)); // 120
Schreibe eine rekursive Methode zur Berechnung der n-ten Fibonacci-Zahl.
Schritte:
fibonacci(int n)Beispiel:
public class Fibonacci {
public static int fibonacci(int n) {
if(n == 0) return 0;
if(n == 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args) {
System.out.println(fibonacci(10)); // 55
}
}