回调函数?该如何解决

回调函数?
函数A有两个选择if B else C, B中如果满足条件D,则下一步。否则返回A重新开始。这样的函数怎么写?

------解决方案--------------------
用递归
------解决方案--------------------
1、如果函数A的参数不需要改变,那么直接用for/while/goto建立循环圈是比较有效率的;
2、如果函数A的参数需要改变,那么就只能递归的调用函数A。
------解决方案--------------------
C/C++ code

while(1)
    {
        if(XXX)
        {
            //B
            if(D)
            {
                break;
            }
            else
            {
                continue;
            }
        }
        else
        {
            //C
            break;
        }
    }
    
    .........//下一步

------解决方案--------------------
goto 也可以,不过不推荐。