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
'[JAVA] > JAVA 기본' 카테고리의 다른 글
[JAVA] 오토박싱 & 언박싱 (Integer[] 타입으로 생성된 리스트에 int 타입의 데이터를 못 넣는 이유 ) (0) | 2022.09.29 |
---|---|
[JAVA] break 문과 continue 문 (0) | 2022.09.28 |
[JAVA] static 키워드 (1) | 2022.09.19 |
[JAVA] 배열 (0) | 2022.09.17 |
[JAVA] 가비지 컬렉션(Garbage Collection) (0) | 2022.09.16 |