这是一个很好的递归示例吗?

时间:2015-08-07 00:22:35

标签: recursion

我意识到这是一个非常简单的代码,我很确定它是递归的,但我只是想确保它是我认为的。 (对不起,如果这是一个蹩脚的问题,如果我理解递归实际上是什么,我只是第二次猜测自己。)

var x = 0
func countToTen() {
    if (x <= 10) {
        println(x)
        x++
        countToTen()
    }
}

2 个答案:

答案 0 :(得分:5)

是的,这绝对是递归的!但是,为了获得良好的风格,最好将x作为函数的参数。这是一种样式问题,但它也使代码更容易维护,没有像你这样的全局变量。

这就是我在说什么。

func countToTen(x) {
    if (x <= 10) {
        println(x)
        countToTen(x + 1)
    }
}

现在你可以调用函数

countToTen(1)
例如,那将从1到10计算。你做得对,我的版本可能只是稍微清晰一点。

答案 1 :(得分:-1)

在编程中,如果方法:

  • 自称并且,
  • 向基本案例移动(在本例中为x == 10)

然后它是递归的。

Here是关于真实世界范例的帖子。