递归

来源:互联网 发布:php吧 编辑:程序博客网 时间:2024/06/08 12:17

c++函数有一种有趣的特点——可以自己调用自己,称为递归。
* 包含一个递归调用的递归
如果递归函数调用自己,那么被调用的函数也将调用自己,这将导致无限死循环,除非代码中包含终止调用链的程序。通常是将递归放在if语句中。格式:

void recurs(argumentList){    statements1;    if(test)    {        recurs(arguement);    }    statements2;}

递归调用:只要if语句为true,则每个recurs()调用都将执行statements1,然后再调用recurs(),而不会执行statements2。当if语句为false,当前调用将执行statements2。当前调用结束后,程序控制权将返回给调用它的recurs(),而该recurs()将继续调用其下面将要执行的statements2部分代码,然后结束,继续再上一级调用,以此类推。

程序示例:

#include <iostream>using namespace std;void countdown(int n);int main(){    int i=5;    countdown(5);    cout<<"Done.\n";    return 0;}void countdown(int n){    cout<<"countdown: "<<n<<endl;    if (n>0)    {        countdown(n-1);    }    cout<<n<<" Kaboom!"<<endl;}

输出结果:

这里写图片描述