Rekurzija u Javi je proces u kojem metoda poziva samu sebe kontinuirano. Metoda u Javi koja poziva samu sebe naziva se rekurzivna metoda.
Ovo čini programski kod kompaktnim, ali ponekad kompleksnim i težim za razumijevanje.
Sintaksa:
returntype methodname(){
//kod koji se izvršava
methodname(); //pozivanje iste metode
}
Rekurzija u Javi Primjer 1: Beskonačno mnogo puta...
Listing programa:
public class RecursionExample1 {
static void p(){
System.out.println("hello");
p();
}
public static void main(String[] args) {
p();
}
}
Ispis na ekranu:
hello
hello
...
java.lang.StackOverflowError
Rekurzija u Javi Primjer 2: Konačno mnogo puta...
Listing programa:
// Rekurzija u Javi Primjer 2: Konačno mnogo puta...
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){
p();
}
}
Ispis na ekranu:
hello 1
hello 2
hello 3
hello 4
hello 5
Rekurzija u Javi Primjer 3: Faktorijel broja
Kako radi ovaj program:
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
Listing programa:
Rekurzija u Javi Primjer 3: Faktorijel broja
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("Faktorijel od 5 je: "+factorial(5));
}
}
Ispis na ekranu:
Faktorijel od 5 je: 120
Rekurzija u Javi Primjer 4: Fibonacci-jev red
Listing programa:
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); //ispis 0 i 1
printFibo(count-2); //n-2 zato što su 2 broja već ispisana
}
}
Izlaz:
Ispis na ekranu:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
Objektno orijentisano programiranje u Javi Index
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |