C# Language재귀


비고

재귀를 사용하면 각 재귀 함수 호출이 스택에 추가되므로 코드에 심각한 영향을 줄 수 있습니다. 호출 수가 너무 많으면 StackOverflow 예외가 발생할 수 있습니다. 대부분의 "자연 재귀 함수"는 for , while 또는 foreach 루프 구문으로 작성 될 수 있으며, 그렇게 멋지 거나 영리 하지 않으면 더 효율적으로 작성됩니다.

항상 두 번 생각하고 재귀를 신중하게 사용하십시오 - 왜 사용하는지 확인하십시오.

  • 재귀 호출 수가 과도 하지 않다는 것을 안다면 재귀를 사용해야합니다.
    • 과도한 수단, 사용 가능한 메모리 양에 따라 다름
  • 재귀는 코드 버전이 명확하고 깨끗하기 때문에 반복적이거나 루프 기반 함수보다 읽기 쉽습니다. 종종 더 깨끗하고 더 간결한 코드 (코드 줄이 더 작음)를 제공하기 때문에 이러한 경우가 종종 있습니다.
    • 하지만 효율성이 떨어질 수 있습니다. 예를 들어 피보나치 재귀에서 시퀀스의 n 번째 숫자를 계산하려면 계산 시간이 기하 급수적으로 증가합니다!

더 많은 이론을 원한다면 다음을 읽어보십시오 :

재귀 관련 예