רקורסיה בג'אווה היא תהליך שבו שיטה קוראת לעצמה ברציפות. שיטה ב-java שקוראת לעצמה נקראת שיטה רקורסיבית.
זה הופך את הקוד לקומפקטי אך מורכב להבנה.
תחביר:
returntype methodname(){ //code to be executed methodname();//calling same method }
ג'אווה רקורסיה דוגמה 1: אינסוף פעמים
public class RecursionExample1 { static void p(){ System.out.println('hello'); p(); } public static void main(String[] args) { p(); } }
תְפוּקָה:
hello hello ... java.lang.StackOverflowError
ג'אווה רקורסיה דוגמה 2: זמנים סופיים
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){>
ג'אווה רקורסיה דוגמה 3: מספר פקטוריאלי
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)); } }
תְפוּקָה:
Factorial of 5 is: 120
עבודה של התוכנית לעיל:
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
דוגמה 4 של ג'אווה רקורסיה: סדרת פיבונאצ'י
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 } }
תְפוּקָה:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377=5){>