본문 바로가기
[JAVA]/JAVA 기본

[JAVA] 재귀 함수

by 황원용 2022. 9. 20.
728x90

재귀 함수

 함수가 자기 자신을 직간접적으로 호출하는 함수를 말한다.

 

재귀 함수의 장점

  • 반복문을 여러개 사용하지 않고 코드를 간결하게 작성할 수 있다.
  • 수정이 용이하다.
  • 변수를 여러 개 사용하지 않아도 된다.

 

재귀 함수의 단점

  • 반복문과 달리 코드의 직관성이 떨어진다.
  • 반복문에 비해 메모리를 많이 사용한다.(반복하여 메서드를 호출하여 전부 process stack에 저장하기때문)
  • 메서드 호출 이후 복귀를 할 때 컨텍스트 스위칭 비용이 발생한다.

 

재귀함수를 사용하기 위한 조건

  • 문제의 크기를 작은 단위로 나눌 수 있다.
  • 재귀 함수의 호출을 종료하는 시점이 존재해야 한다.

 

<코드 예시>

import java.util.Scanner;

public class Main {
    public static void Gugudan(int num, int i) {
        if (i > 9) return;
        System.out.printf("%d * %d = %d%n",i, num, i * num);
        Gugudan(num, ++i);


    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int i = 1;
        Gugudan(num, i);

    }
}

// 출력값
9 <- 입력
1 * 9 = 9
2 * 9 = 18
3 * 9 = 27
4 * 9 = 36
5 * 9 = 45
6 * 9 = 54
7 * 9 = 63
8 * 9 = 72
9 * 9 = 81

 

728x90