我们发现递归是重复执行子程序中包含的命令。反过来,这类似于循环的工作。有些编程语言根本不存在循环结构,例如 Prolog。
让我们尝试模拟循环 for 的工作。
for 循环包含一个计步器变量。在递归子程序中,这样的变量可以作为参数传递。
<前>
// 过程 LoopImitation()
有两个参数
// 第一个参数 –计步器,第二个参数——总步数
<代码>static void LoopImitation(int i, int n)
{
Console.WriteLine("你好 N" + i); // 对于任何值 i 要重复的语句
if (i < n) // 直到循环计数器等于 n,
{
LoopImitation(i+1, n); // 调用一个新的实例过程,带有参数 i+1(转到下一个 i 值)
}
}