我正在学习Swift中的递归函数,并且做了以下工作:
func recursive(i: Int) -> Int {
if i == 1 {
return 1
} else if i >= 2 {
return recursive(i: i - 1) + 1
}
return 0
}
我不知道为什么上面的功能不起作用。我已经通过执行以下操作
print(recursive(10))
进行了测试,该输出为10。我希望输出为1。有人可以帮助我吗?先感谢您。我在XCode 8.3上使用Playgrounds。
最佳答案
执行此操作时:
recursive(i: i - 1) + 1
…然后实际上是递减
i
,然后再次递增。这样就抵消了,您再次到达i
。让我们写下对
i = 3
进行的计算:(3 - 1) + 1 = ((2 - 1) + 1) + 1 = (((1) + 1) + 1) = 3