[英]Recursive function in XCode Playground (Swift)
我正在 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
这是不使用任何循环打印数字的完美示例。
递归函数对于处理这种情况非常有用。
func printCount( count : inout Int , limit : Int) {
print(count, terminator: " ")
count += 1
if count > limit {
return
}
printCount(count: &count , limit: limit)
}
var count = 11
let limit = 20
printCount(count: &count , limit: limit)
输出:11 12 13 14 15 16 17 18 19 20
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.