Recursie in Java is een proces waarbij een methode zichzelf continu aanroept. Een methode in Java die zichzelf aanroept, wordt recursieve methode genoemd.
Het maakt de code compact maar complex om te begrijpen.
Syntaxis:
returntype methodname(){ //code to be executed methodname();//calling same method }
Java-recursie Voorbeeld 1: Oneindige tijden
public class RecursionExample1 { static void p(){ System.out.println('hello'); p(); } public static void main(String[] args) { p(); } }
Uitgang:
hello hello ... java.lang.StackOverflowError
Java-recursie Voorbeeld 2: Eindige tijden
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-recursie Voorbeeld 3: faculteitsgetal
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)); } }
Uitgang:
Factorial of 5 is: 120
Werking van bovenstaand programma:
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-recursie Voorbeeld 4: Fibonacci-reeks
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 } }
Uitgang:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377=5){>