我感觉二楼三楼写的挺清楚的了啊。。没看懂?
那就在详细一点吧。编程更多还是要自己多思考啊
假设你输入的正整数是3,即number=3
那么执行 result =factorial(number),就会调用factorial,此时n=3,
第一次执行factorial,n=3,if判断,不满足条件,执行else后的语句,即return 3*factorial(3-1)
这时遇到函数调用,先去执行函数调用,即递归执行factorial(2)
第二次执行factorial,n=2,if判断,不满足条件,执行else后的语句,即return 2*factorial(2-1)
这时遇到函数调用,先去执行函数调用,即递归执行factorial(1)
第三次执行factorial,n=1,if判断,满足条件,执行 return 1,函数返回 1,返回到上次调用的地方
即返回到第三次调用的地方,继续执行 return 2*factorial(2-1),现在得到的是return 2*1,返回 2,返回到上次调用的地方
即返回到第二次调用的地方,继续执行return 3*factorial(3-1),现在得到的是 return 3*2,返回6,返回上次调用的地方
即返回到第一次调用的地方,现在得到result=6