Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
more
Archives
Today
Total
관리 메뉴

개발새발

재귀함수 #for문 본문

자바

재귀함수 #for문

개발하는후추 2022. 8. 4. 15:40

재귀함수 (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