递归方法即使有条件也不会停止

Recursive method not stopping even with condition

即使达到条件递归也不会停止

 bool answer = trouverMot(tab, bankMots, x - 1, y, (longueurMatch + 1), motNumero, positions1) |
                      trouverMot(tab, bankMots, x + 1, y, (longueurMatch + 1), motNumero, positions1) |
                      trouverMot(tab, bankMots, x, y - 1, (longueurMatch + 1), motNumero, positions1) |
                      trouverMot(tab, bankMots, x, y + 1, (longueurMatch + 1), motNumero, positions1);

如果我替换这段代码:

bool answer = trouverMot(tab, bankMots, x - 1, y, (longueurMatch + 1), motNumero, positions1) |
              trouverMot(tab, bankMots, x + 1, y, (longueurMatch + 1), motNumero, positions1) |
              trouverMot(tab, bankMots, x, y - 1, (longueurMatch + 1), motNumero, positions1) |
              trouverMot(tab, bankMots, x, y + 1, (longueurMatch + 1), motNumero, positions1);
return answer;

与:

bool answer = trouverMot(tab, bankMots, x - 1, y, (longueurMatch + 1), motNumero, positions1) ||
              trouverMot(tab, bankMots, x + 1, y, (longueurMatch + 1), motNumero, positions1) ||
              trouverMot(tab, bankMots, x, y - 1, (longueurMatch + 1), motNumero, positions1) ||
              trouverMot(tab, bankMots, x, y + 1, (longueurMatch + 1), motNumero, positions1);
return answer;

我得到了预期的输出 MANDOLINE

我认为您不想在已经成功后进行递归搜索(logical-or 运算符 short-circuits 评估,bitwise-or 运算符没有)。