用简单的英语递归

递归可以定义为:

调用自身直到满足特定条件的方法。

一个优秀而简单的递归示例是一种获取给定数字的阶乘的方法:

public int Factorial(int number)
{
    return number == 0 ? 1 : n * Factorial(number - 1);
}

在这个方法中,我们可以看到该方法将采用参数 number

一步步:

举个例子,执行 Factorial(4)

  1. number (4) == 1
  2. 没有?返回 4 * Factorial(number-1)(3)
  3. 因为该方法再次被调用,所以它现在使用 Factorial(3) 作为新参数重复第一步。
  4. 这一直持续到执行 Factorial(1) 并且 number (1) == 1 返回 1。
  5. 总的来说,计算建立4 * 3 * 2 * 1,最后返回 24。

理解递归的关键是该方法调用自身的新实例。返回后,继续执行调用实例。