为什么递归函数在达到终止条件时会反弹?

比如终止条件当n=1时,return1。
为什么在return1之后要出现反弹,然后回到原来所要求的值。
递归函数的本质就是自己调用自己。我想知道在自己调用自己的同时为何会产生递进和返回两种不同的功能?
既然是调用就一调到底。怎么理解通过调用,同时实现递进和返回两个功能的?

n==1吧,把代码贴出来,我们看看代码


对于楼主 “怎么理解通过调用,同时实现递进和返回两个功能的?” 这句话的回答:

执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由里到外退出。

当递归进入到最内层的时候,递归“进”的这个过程就结束了,就开始逐层退出了,也就是逐层执行 return 语句,也就是下面回复中提到的 U 字型

你可以这么理解,假设有一个递归函数有以下关系,
f(n) = f(n-1)+1
f(n-1) = f(n-2)+1
。。。。
f(2) = f(1)+1
f(1) = 1+1
那么f(n) = f(n-1)+1 = f(n-2)+1+1....=f(1)+1*(n-1) = 1+1*n = n+1
你需要先递进到f(1),然后再把递进到f(1)过程中需要添加的计算再累计上去才能计算出f(n)