在 for 循环中跳出 C++ 递归函数

时间:2021-02-18 22:43:16

标签: c++ recursion

当条件满足时,我无法跳出这个 C++ 递归函数,我相信是因为 for 循环仍在继续。有没有办法一下子跳出整个事情(不仅仅是跳出 for 循环,而是同时完成递归)?将 set 设为字母表字母的字符集。它确实到达了输出 cout << run << endl; 的行,但它仍然没有终止程序。这是为什么?

bool printKString(char set[], string initial, 
                                    int n, int k, bool complete) 
{ 
    bool finished = false;
    if (k == 0) 
    { 
        if(initial.substr(0, 5) == "abcde") {
            cout << " - FOUND - " << initial << endl;
            complete = true;
        } 
        return complete;
    } 
    for (int i = 0; i < n; i++) 
    { 
        string newPrefix;  
        newPrefix = prefix + set[i]; 
        bool run = printKString(set, newPrefix, n, k - 1, complete);
        if(run) {
            cout << run << endl;
            break;
        } 
    } 
} 

0 个答案:

没有答案
相关问题