递归

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;
}

输出结果:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值