怎样强制退出递归函数

 我来答
风雷九州
2017-03-29 · TA获得超过3025个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:421万
展开全部

这个是不可以的,除非强制退出整个程序的执行,比如使用exit(0);这样的语句。

C语言的函数调用是一层一层的,本层函数执行完会返回上一层函数执行,如果一个递归函数已经调用了10层了,不可能说支持退出这十层函数的执行,直接返回最上层的函数,这个是不现实的。

但是也可以使用其他方法,比如全局变量之类的,每个函数都去判断这个全局变量,这样只要不满足,一层一层的退出函数,也可以实现这个功能,代码举例如下:

int flag=0; //全局变量,判断递归函数是否退出。

void fun1()   //递归函数实现
{
    xxxx    //其他语句
    fun1(); //递归调用
    if(flag==1)  //判断是否退出
    {
        return;
    }
    xxxx    //其他语句
    if(xxxx)  //需要退出递归函数的条件
    {
        flag=1;  //设置标志
        return;  //退出,这样会一直退出所有递归函数
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式