본문 바로가기
코딩테스트 준비/자료구조 & 알고리즘

C# - 메서드안에서 재귀호출시 실행과정을 알아보자

by 코딩하는 돼징 2023. 12. 22.
반응형

알고리즘 문제를 풀면서 재귀 호출 실행 과정을 한 번 자세히 다뤄보는게 좋을 것 같다는 생각이 들었다.

과정

01 메서드 안에 다시 메서드를 호출할 경우 재귀 호출이기 때문에 메서드가 호출되면서 현재 실행 중인 함수의 상태를 스택에 저장하고 새로운 함수 호출이 시작된다. 

02 새로운 함수의 실행이 끝나면 return을 통해 스택에서 이전 함수의 상태를 꺼내어 계속 진행하게 된다.


예시

static void RecursiveExample(int i)
{
    if (i == 3)
    {
        Console.WriteLine($"i == 3 : {i}");
        return; // 이전 호출로 되돌아 가기
    }

    Console.WriteLine($"Before recursive call: {i}");
    RecursiveExample(i + 1);
    Console.WriteLine($"After recursive call: {i}");
}

결과

반응형

댓글