[JAVA] 재귀 메서드와 재귀 호출

재귀 메서드는 자기 자신을 호출하는 메서드로, 프로그래밍에서 반복적인 작업을 간단하게 표현하거나 복잡한 문제를 해결하는데 사용됩니다.

 

재귀 메서드의 특징

종료 조건을 명시하지 않으면 무한 루프에 빠지기 때문에 종료 조건이 만족되면 재귀 호출이 중단되도록 합니다.

 

재귀 메서드 예제1(팩토리얼)

public class Example {
    public static void main(String[] args) {
        int num = 5;
        int factorial = calculateFactorial(num);
    }

    public static int calculateFactorial(int n) {
        if (n == 0 || n == 1) { // 종료 조건
            return 1;
        } else {
            return n * calculateFactorial(n - 1); // 재귀 호출
        }
    }
}

재귀 메서드 예제2(피보나치 수열)

public class Example {
    public static void main(String[] args) {
        int n = 10;
        fibonacci(n);
    }

    public static int fibonacci(int n) {
        if (n == 0) { // 종료 조건
            return 0;
        } else if (n == 1) { // 종료 조건
            return 1;
        } else {
            return fibonacci(n - 1) + fibonacci(n - 2); // 재귀 호출
        }
    }
}

재귀 메서드의 장점

  1. 복잡한 문제를 간단하게 표현할 수 있습니다.
  2. 코드가 간결해집니다.

재귀 메서드의 단점

  1. 재귀 호출할때마다 스택을 사용하므로 메모리 사용량이 증가합니다.
  2. 종료 조건을 잘못 설정하면 무한 루프에 빠집니다.