Rekursion ist in Java ein Prozess, bei dem sich eine Methode kontinuierlich selbst aufruft. Eine Methode in Java, die sich selbst aufruft, wird als rekursive Methode bezeichnet.
Dadurch wird der Code kompakt, aber komplex zu verstehen.
Syntax:
returntype methodname(){ //code to be executed methodname();//calling same method }
Java-Rekursion Beispiel 1: Unendliche Zeiten
public class RecursionExample1 { static void p(){ System.out.println('hello'); p(); } public static void main(String[] args) { p(); } }
Ausgabe:
hello hello ... java.lang.StackOverflowError
Java-Rekursionsbeispiel 2: Endliche Zeiten
public class RecursionExample2 { static int count=0; static void p(){ count++; if(count<=5){ system.out.println('hello '+count); p(); } public static void main(string[] args) { < pre> <p>Output:</p> <pre> hello 1 hello 2 hello 3 hello 4 hello 5 </pre> <h2>Java Recursion Example 3: Factorial Number</h2> <pre> public class RecursionExample3 { static int factorial(int n){ if (n == 1) return 1; else return(n * factorial(n-1)); } public static void main(String[] args) { System.out.println('Factorial of 5 is: '+factorial(5)); } } </pre> <p>Output:</p> <pre> Factorial of 5 is: 120 </pre> <p> <strong>Working of above program:</strong> </p> <pre> factorial(5) factorial(4) factorial(3) factorial(2) factorial(1) return 1 return 2*1 = 2 return 3*2 = 6 return 4*6 = 24 return 5*24 = 120 </pre> <h2>Java Recursion Example 4: Fibonacci Series</h2> <pre> public class RecursionExample4 { static int n1=0,n2=1,n3=0; static void printFibo(int count){ if(count>0){ n3 = n1 + n2; n1 = n2; n2 = n3; System.out.print(' '+n3); printFibo(count-1); } } public static void main(String[] args) { int count=15; System.out.print(n1+' '+n2);//printing 0 and 1 printFibo(count-2);//n-2 because 2 numbers are already printed } } </pre> <p>Output:</p> <pre> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 </pre></=5){>
Java-Rekursionsbeispiel 3: Fakultätszahl
public class RecursionExample3 { static int factorial(int n){ if (n == 1) return 1; else return(n * factorial(n-1)); } public static void main(String[] args) { System.out.println('Factorial of 5 is: '+factorial(5)); } }
Ausgabe:
Factorial of 5 is: 120
Funktionsweise des oben genannten Programms:
factorial(5) factorial(4) factorial(3) factorial(2) factorial(1) return 1 return 2*1 = 2 return 3*2 = 6 return 4*6 = 24 return 5*24 = 120
Java-Rekursionsbeispiel 4: Fibonacci-Reihe
public class RecursionExample4 { static int n1=0,n2=1,n3=0; static void printFibo(int count){ if(count>0){ n3 = n1 + n2; n1 = n2; n2 = n3; System.out.print(' '+n3); printFibo(count-1); } } public static void main(String[] args) { int count=15; System.out.print(n1+' '+n2);//printing 0 and 1 printFibo(count-2);//n-2 because 2 numbers are already printed } }
Ausgabe:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377=5){>