c ++如何退出调用自身的函数?

时间:2018-11-30 20:38:31

标签: c++ function

void function ()
{
    if (condition)
    {
        //  do something
    }
    else if (other condition)
    {
        //  go back to main()
    }
    function();
}

在这里,无论我将“ go back to main()”替换为什么,该函数将始终调用自身。

return;
exit;
break;

上面的代码不起作用。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

糟糕的答案:

setjmp();
longjmp();

答案 1 :(得分:0)

听起来像您的问题是if {} else if,它不能涵盖所有情况。通常,递归是这样的:

void function () {
    if (condition) {
        function();
    } else {
        return;
    }
}

答案 2 :(得分:0)

您并没有真正回到main()。那不是您的选择。 return将控件发送回调用方函数。您的代码可以完美运行的情况是,它根本没有到达递归调用。也就是说,如果它到达了else块并返回给调用者,即main

但是从第二次开始,呼叫者不再是main()。而是,调用者是函数本身。因此,从第二次开始,即使条件不匹配,也会返回到函数本身,此后将再次调用该函数。