개발새발
재귀함수 #for문 본문
재귀함수 (Recursive Function)
- 재귀라는 말은 원래 자리로 돌아가거나, 되돌아온다는 의미
- 코딩에서 재귀는 자기 자신(메서드)를 호출하는것
- 자기 자신을 다시 호출하여 재참조하는 구조의 함수
재귀함수와 for 문 (반복문) 의 차이
1. 메모리
- 재귀함수는 함수를 반복적으로 호출하기 때문에 스택 메모리를 사용하지만(스택 오버플로우가 발생 할 수 있다), 반복문은 메모리 힙을 사용한다
2. 코드의 길이
- 반복문에 비해 재귀문이 코드의 길이를 줄일 수 있다
재귀함수(Recursion)
- 함수 자체를 호출
- 기본으로 종료 조건을 지정
- 조건부 문은 함수 호출 본문에 포함되어 재귀 호출을 실행하지 않고 함수를 강제로 반환
- 기본적으로 종료조건에 수렴하지 않으면 무한재귀가 발생
- 무한재귀 --> 스택오버플로우 발생
- 실행 속도 느림
- 코드의 길이가 짧아 가독성이 좋음
반복문(Iteration)
- 일련의 수행을 반복적으로 수행
- 초기화,종료식,증감식 내의 명령문 실행
- 특정 조건이 만족할 때까지 반복
- 제어조건이 참이면 무한반복
- 빠른실행 속도
- 코드가 길어지고 많은 변수 사용으로 인해 가독성 저하
- 스택 메모리를 사용하지 않음 --> 힙 메모리사용
정리
재귀 함수는 작성하기 비교적 쉽고, 반복문은 여러 변수사용과 조건식을 지정해줘야한다
하지만 재귀에 비해 속도적인 측면에서는 반복문이 더 빠르다
'자바' 카테고리의 다른 글
제네릭 (0) | 2022.10.31 |
---|---|
OOP(Object Oriented Programming) (0) | 2022.10.24 |
#재귀 (0) | 2022.08.03 |
#InputStream, OutputStream #Thread(스레드) #Multi-thread(멀티 스레드) (0) | 2022.08.03 |
#JSON (0) | 2022.08.03 |
Comments