일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 금감원
- 백내장 다초점렌즈 삽입술
- Code States 백엔드 합격 후기
- Spring
- 코드 스테이츠 백엔드 교육과정
- 코드스테이츠 합격 후기
- 겜스고
- 해시
- 코드스테이츠 백엔드 부트캠프 합격
- 코드스테이츠 부트캠프
- codestates 국비지원 1기 합격 후기
- 에이치엘비
- 백내장
- CodeState 후기
- 백내장 금감원
- 백준 알고리즘
- 코드스테이츠 부트캠프 합격 후기
- 자바
- 보험금 지급거절
- 금감원 백내장 민원
- 코드스테이츠 백엔드 후기
- 코테 합격후기
- 코드스테이츠 합격
- 금융감독원 민원신청
- 금융감독원
- 메서드
- Gamsgo
- Java
- 코드스테이츠 백엔드 교육과정
- HLB
Archives
- Today
- Total
개발하는 동그리
[Java] 재귀함수 본문
반응형
재귀함수
- 함수가 직접 또는 간접적으로 자신을 호출 하는 프로세스다.
- for, while 반복문과 비슷한 기능이라고 볼 수 있다.
public int factorial(int num){
if ( num == 0 ) return 1; // num 이 0일 경우 1 리턴하고 종료!
return num * factorial(num-1); // factorial 메서드 안에 num 을 1씩 줄여가며 본인 메서드 호출
}
public int fibonacci(int num){
// 피보나치 수열 a(n) = a(n-1) + a(n-2) 반복된다. ex) 0, 1, 1, 2, 3, 5, 8, 13
if ( num == 0 ) return 0; // 앞에 숫자 2개가 존재해야 하므로 선언 또는 해당 값일 때 종료
if ( num == 1 ) return 1; // 앞에 숫자 2개가 존재해야 하므로 선언 또는 해당 값일 때 종료
return fibonacci(num-1) + fibonacci(num-2); // 본인 메서드 호출
장점
- 변수를 여러개 만들 필요가 없다.
- 반복문을 사용하지 않기 때문에 코드가 간결하다.
단점
- 지속적으로 호출하면 지역변수,매개변수, 반환값을 stack에 저장하기 때문에 StackOverflowError가 발생할 수 있다.
- 함수 호출 -> 복귀를 위한 컨텍스트 스위칭에 비용이 발생한다.
대표적인 사용 예제
팩토리얼 (Factorial), 피보나치 수열 (Fibonacci) 에 사용.
반응형
'IT 정보 > Java' 카테고리의 다른 글
[Java] 문자를 문자열로 변경 (4) | 2022.05.26 |
---|---|
[Java] Arrays.copyOfRange / System.arraycopy (29) | 2022.05.24 |
추상클래스와 인터페이스의 차이 - 정리 (34) | 2022.05.23 |
자바 객체지향 프로그래밍 (OOP)란!? - 정리! (24) | 2022.05.22 |
Static 변수란!? - 정리 (4) | 2022.05.22 |