재귀 호출이란 무엇입니까?

프로그래밍에서 재귀 호출은 프로그램이 동일한 서브 루틴을 다시 실행하도록 지시하는 서브 루틴 또는 함수 내의 명령입니다. 반복 성능은 기능의 직접적인 결과 일 수 있거나, 제 1 기능을 다시 참조하는 제 2 기능이 트리거 될 수있다. 재귀 호출에는 두려운 무한 루프와 일부 유사하지만 서브 루틴에는 항상 재귀 반복을 중지 할시기를 알려주는 조건문이 있습니다.

재귀 개념은 예제를 사용하여 가장 잘 설명됩니다. 지붕이 집에 새 대상 포진을 적용한다고 가정 해보십시오. 시작하려면 지붕에 대상 포진 묶음을 가져와야합니다. 첫 번째 묶음을 제자리에 못 박 으면 사다리를 내려 가서 다른 묶음을 꺼내서 제자리에 못 박 아야합니다. 프로세스는 마지막 싱글이 적용될 때까지 일련의 "go, fetch, return"으로 계속 진행됩니다. 그 시점에서 지붕은 다음 직장으로 자유롭게 이동하거나 집으로 갈 수 있습니다.

이 예는 지나치게 단순화되었지만 재귀 호출의 모든 요소를 ​​포함합니다. 시작 지점이 있으며, 지붕은 필요한 것을 검색하고 시작으로 돌아가서 최종 조건이 충족되면 중지해야합니다. 이것은 기본적으로 프로그램이하는 일입니다. 시작, 조치를 구현하고 자체로 돌아가며 종료 조건이 발생하면 종료됩니다.

종료 조건을 기본 사례라고합니다. 모든 재귀 호출에 필수적입니다. 그것 없이는, 기능은 계속 반복 될 것이다. 기껏해야 이것은 시스템의 메모리 리소스를 소모시킵니다. 일반적으로 과부하는 어느 시점에서 프로그램을 중단 시키지만 문제가 발견 될 때 심각한 손상이 발생할 수 있습니다.

숙련 된 프로그래머는 재귀 호출과 "for"또는 "while"루프 간의 유사성을 인식 할 수 있습니다. 예를 들어, 부품 번호가 999보다 큰 모든 재고의 총 재고 수를 찾는 것이 목표 인 경우 "for"루프는 프로그램에 모든 적격 인스턴스를 찾도록 지시하고 "while"루프는 프로그램에 루프를 실행하도록 지시합니다 명시된 조건이 유효한 동안에 만. 재귀 호출은 이러한 루프의 일부 기능을 "if-then-else"문과 결합한다고 말할 수 있습니다. 이 조건이 true이면이 작업을 수행하거나 조건이 false이면 다른 작업을 수행하십시오. 재귀는 일반적으로 더 작은 코드를 허용하지만 문제가 필요한 지점에 가까운 함수로 전달 될 수 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?