什么是递归函数

  • 内容
  • 评论
  • 相关

前面的学习过程中,我们已经看到过很多调用其他函数的函数实例。例如,函数 A 可以调用函数 B,而函数 B 又可以调用函数 C。

实际上,函数也可以调用它自己。调用自己的函数称为递归函数。来看以下 message 函数:

void message()
{
    cout << "This is a recursive function. \n";
    message();
}

该函数显示字符串 "This is a recursive function.",然后调用它自己。每次它调用自己时,循环都会重复。现在应该能发现该函数的问题,因为它没有办法停止递归调用。这个函数就像一个无限循环,因为没有代码阻止它重复。

要使递归函数有用,则递归函数必须有一个方法来控制递归调用的次数。以下是对 message 函数的修改。它传递了一个整数参数,该参数将保存函数调用自己的次数。

void message(int times)
{
    if (times > 0)
    {
        cout << "This is a recursive function.\n";
        message(times - 1);
    }
}

该函数包含一个控制递归的 if 语句。只要 times 参数大于零,它将显示消息并再次调用自己。每次它调用自己时,都会传递 times-1 作为参数。例如,假设有一个程序使用以下语句来调用该函数:

message(3);

参数 3 将导致函数被调用 4 次。第一次调用函数时,if 语句将显示消息并以 2 作为参数调用自身,如图 1 所示。



图 1 递归函数调用过程

本文标题:什么是递归函数

本文地址:http://www.hosteonscn.com/3898.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注