|

楼主 |
发表于 2020-9-7 00:46:37
|
显示全部楼层
我看了几段视频,我说下我的理解吧,当执行到result = factorial(number),(假设给的参数是4),调用函数,判断函数参数是否等于 1,等于1就返回 1,返回result这个变量(factorial这个函数),不等于1执行else条件,即返回factorial(number- 1) * number(即factorial(3) * 4,)这里在调用了函数的参数 - 1 * 3的同时候也调用函数,然后又进入到factorial(3),if判断,成立返回1,不成立factorial(number - 1) * 3,即(factorial(2) * 3)同理调用函数参数的 - 1 * 3的同时也调用函数,又进入到factorial(2),现在number还是不等于所以,factorial(2 - 1) * 2,由此类推,直到if条件成立返回1,退出函数,结果为:1*2*3*4的积,怎么说呢,递归有点抽象,用文字表达,程序在第一次返回其实就已经返回结果,返回的返回值里面又包含了另一个返回值,另一个返回值又返回了另一个返回值,直到返回值1为 |
|