logo

Rekursion in Java

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(&apos;Factorial of 5 is: &apos;+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&gt;0){ n3 = n1 + n2; n1 = n2; n2 = n3; System.out.print(&apos; &apos;+n3); printFibo(count-1); } } public static void main(String[] args) { int count=15; System.out.print(n1+&apos; &apos;+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(&apos;Factorial of 5 is: &apos;+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&gt;0){ n3 = n1 + n2; n1 = n2; n2 = n3; System.out.print(&apos; &apos;+n3); printFibo(count-1); } } public static void main(String[] args) { int count=15; System.out.print(n1+&apos; &apos;+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