return 1 這裏面已經不包括函數本身,所以就停止遞歸了。
所謂“遞歸”,通俗來講就是函數裏面再次調用函數本身,這就涉及到壹個層次問題,就像坐電梯壹樣,比如壹開始在壹樓,遞歸調用壹次,就等於到了二樓,然後每遞歸壹次就上壹層樓,到了某層樓(比如6樓)停止遞歸了,它並不是壹下子就返回壹樓的,而是要逐層樓下降的。下面舉個例子,比方說number的值是5:
壹樓:result = factorial(5)
二樓:return 5 * factorial(4)
三樓:return 4 * factorial(3)
四樓:return 3 * factorial(2)
五樓:return 2 * factorial(1)
六樓:return 1 //結束遞歸了
返回五樓:return 2 * 1
返回四樓:return 3 * 2
返回三樓:return 4 * 6
返回二樓:return 5 * 24
返回壹樓:result = 120
其實從整個計算流程看,就相當於 1 * 2 * 3 * 4 * 5 = 120,也就是5的階乘是120