用简单的英语递归
递归可以定义为:
调用自身直到满足特定条件的方法。
一个优秀而简单的递归示例是一种获取给定数字的阶乘的方法:
public int Factorial(int number)
{
return number == 0 ? 1 : n * Factorial(number - 1);
}
在这个方法中,我们可以看到该方法将采用参数 number
。
一步步:
举个例子,执行 Factorial(4)
- 是
number (4) == 1
? - 没有?返回
4 * Factorial(number-1)
(3) - 因为该方法再次被调用,所以它现在使用
Factorial(3)
作为新参数重复第一步。 - 这一直持续到执行
Factorial(1)
并且number (1) == 1
返回 1。 - 总的来说,计算建立
4 * 3 * 2 * 1
,最后返回 24。
理解递归的关键是该方法调用自身的新实例。返回后,继续执行调用实例。