def recursion_1(n):
if n == 0:
return
recursion_1 (n-1)
print(n)
我不明白這段代碼如何以與 for 回圈列印范圍從 1 到 5 的串列相同的方式列印 1 到 5。在此處傳遞 5 作為引數。
uj5u.com熱心網友回復:
理解它的最好方法可能是想象如果你用它的定義替換函式呼叫它會是什么樣子。
所以recursion_1(5)變成:
if 5 == 0:
return
recursion_1 (4)
print(5)
這又相當于:
if 5 == 0:
return
if 4 == 0:
return
recursion_1 (4)
print(4)
print(5)
等等直到:
if 5 == 0:
return
if 4 == 0:
return
if 3 == 0:
return
if 2 == 0:
return
if 1 == 0:
return
recursion_1 (0)
print(1)
print(2)
print(3)
print(4)
print(5)
然后recursion_1(0)將回傳,因為條件滿足(0 == 0為真)并且每個先例呼叫將在列印其編號后回傳。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/384991.html
上一篇:Linux磁區未顯示完整大小
下一篇:無法在遞回java函式中計算總和
