콜백 과정을 고려하지 않고 함수 구현 기능을 고려하여 재귀를 이해하세요 재귀를 이해하기 위해 콜백 과정을 고려한다면 전체 재귀 과정에서 매개변수와 변수를 분석하고 언제 호출되는지 기억해야 합니다. 함수를 호출하고 메인 호출 함수로 돌아가는 게 좀 번거로운 것 같아요 .递归求解阶乘일반적으로 사용되는 재귀 함수의 함수는
:
와 같이 잘 설명되어 있습니다.
으아악
计算 n 的阶乘, 函数功能实现就是: n 的阶乘 = n * (n-1)的阶乘함수 함수는 다음과 같습니다.
이렇게 이해하면 재귀 과정에서 함수 호출 문제를 고려할 필요가 없습니다.
해당 함수에 대해:输入 n,输出 n+1, 如果 n+1<5,执行 fun(n+1),再输出 n+1함수 함수는: (짧은 문장으로 설명하기 어렵습니다):
그래서 함수 설명에 따라 함수의 실행 과정을 알 수 있고, 최종적으로 결과를 얻을 수 있습니다.
fun(1): 输入 1, 输出 2, 2+1<5,执行 fun(2),得到 fun(2) 출력 결과를 실행하고 2를 출력합니다. 최종 출력
: 2[output(fun(2))]2
fun(2)마찬가지로 출력 결과: 3[Output(fun(3))]3 최종 출력
: 23[Output(fun(3))]32
fun(3)마찬가지로 출력 결과: 4[Output(fun(4))]4 최종 출력
: 234[Output(fun(4))] 432
fun(4): 由于 4+1<5 判断失败, 不执行 fun(5)Execution , 출력 결과: 55최종 출력
이렇게 생각하시면 됩니다. 이 함수의 기능은 전반부는 i를 에코하고 후반부는 i를 에코하며 i=5까지 중간에 자체 호출이 삽입된다는 것입니다. 이는 i가 5까지 에코되는 것과 동일합니다. , 그리고 처음으로 다시 울려 퍼지는 것은 그만한 가치가 있습니다. 관계를 계속 유지하세요.
콜백 과정을 고려하지 않고 함수 구현 기능을 고려하여 재귀를 이해하세요
:재귀를 이해하기 위해 콜백 과정을 고려한다면 전체 재귀 과정에서 매개변수와 변수를 분석하고 언제 호출되는지 기억해야 합니다. 함수를 호출하고 메인 호출 함수로 돌아가는 게 좀 번거로운 것 같아요
.
递归求解阶乘
일반적으로 사용되는 재귀 함수의 함수는와 같이 잘 설명되어 있습니다. 으아악
이렇게 이해하면 재귀 과정에서 함수 호출 문제를 고려할 필요가 없습니다.计算 n 的阶乘
, 函数功能实现就是:n 的阶乘 = n * (n-1)的阶乘
함수 함수는 다음과 같습니다.해당 함수에 대해:
输入 n,输出 n+1, 如果 n+1<5,执行 fun(n+1),再输出 n+1
함수 함수는:(짧은 문장으로 설명하기 어렵습니다):
: 2[output(fun(2))]2fun(1)
: 输入 1, 输出 2, 2+1<5,执行fun(2)
,得到fun(2)
출력 결과를 실행하고 2를 출력합니다. 최종 출력
: 23[Output(fun(3))]32fun(2)
마찬가지로출력 결과: 3[Output(fun(3))]3 최종 출력
: 234[Output(fun(4))] 432fun(3)
마찬가지로출력 결과: 4[Output(fun(4))]4 최종 출력
: 23455432fun(4)
: 由于 4+1<5 判断失败, 不执行fun(5)
Execution, 출력 결과: 55최종 출력
재귀적으로 반환되면 이 문장이 거꾸로 출력됩니다
함수는 비동기가 아니므로
fun(1)
2 $i++; echo $i;
3 callback func(2) $i++; echo $i;
4 callback func(3) $i++; ;
5 콜백 func(4) $i++; echo $i;
5 콜백 func(4) $i++ 이후에는 이미 5보다 크므로 다음 echo $i(fun(4의 하단 echo $i) ))이 실행됩니다. fun(4) 전체 함수 실행이 종료됩니다.)
4 func(4)의 실행이 완료되었으므로 fun(3)이 계속 실행됩니다. 하단 echo $i
3 2 도 마찬가지입니다. 논리
Fun 함수가 재귀적일 때 $i 함수의 마지막 문장을 실행하여 4를 출력한 다음 지난번 스택에 푸시되었던 위치로 돌아가서 fun 함수가 완전히 반환될 때까지 계속 3을 출력합니다.
이 출력됩니다.if ($i < 5) { return fun($i);}
로 변경하면 23455이 글을 참고하시면 재귀를 이해하시면 이해가 더 쉬울 것입니다. http://www.jianshu.com/p/8bee...
이렇게 생각하시면 됩니다. 이 함수의 기능은 전반부는 i를 에코하고 후반부는 i를 에코하며 i=5까지 중간에 자체 호출이 삽입된다는 것입니다. 이는 i가 5까지 에코되는 것과 동일합니다. , 그리고 처음으로 다시 울려 퍼지는 것은 그만한 가치가 있습니다. 관계를 계속 유지하세요.
모두들 고마워요, 이해해요