프로시저 또는 함수는 그 안에 다른 프로시저에 대한 호출을 포함할 수 있습니다. 포함하여 서브루틴은 자신을 호출할 수 있습니다. 이 경우 컴퓨터는 상관하지 않습니다. 또한 언제나처럼 위에서 아래로 만난 명령을 일관되게 실행합니다.
수학을 기억한다면 그곳에서 수학적 귀납법의 원리를 만날 수 있습니다. 다음과 같습니다.
일부 진술은 모든 자연적인n if
에 대해 참입니다.
1. n = 1 및
2. 임의의 자연 n = k 에 대한 진술의 타당성으로부터 n = k+1.
프로그래밍에서 이 기술을 재귀
라고 합니다.
재귀는 주어진 간단한 기본 사례를 기반으로 집합 자체의 관점에서 개체 집합을 정의하는 방법입니다.
재귀는 자신을 직접 호출하거나 다른 절차 및 함수를 통해 호출하는 절차(함수)라고도 합니다.
재귀 절차의 예:
정적 무효 Rec(int a)
{
if (a>0) Rec(a-1);
cout << ㅏ;
}코드>예>
도식적으로 재귀 작업은 순서도로 나타낼 수 있습니다.
Rec() 프로시저는 매개변수 3으로 실행됩니다. 그런 다음 매개변수 3으로 프로시저 내에서 매개변수 2로 프로시저가 호출되는 식으로 매개변수 0으로 프로시저가 호출될 때까지 계속됩니다. 매개변수 0이 호출되면 재귀 호출은 이미 발생하지 않으며 매개변수 0이 있는 프로시저는 숫자 0을 인쇄하고 종료됩니다. 그런 다음 매개변수 1이 있는 프로시저로 제어가 다시 전송되고 숫자 1을 인쇄하여 작업을 마치는 식입니다. 매개변수 3이 있는 프로시저 전에.
호출된 모든 프로시저는 작업이 완료될 때까지 메모리에 저장됩니다. 동시 프로시저의 수를 재귀 깊이
라고 합니다.