return语句如何在递归中起作用?

Alv*_*var -1 java recursion return

使用递归时,我意识到我不确定return语句是如何工作的.当target.contains(key)返回true时它是否停止并返回true,或者它是否会丢失并返回false,因为下面的行?该方法的先前迭代是否已完成,以便它返回false?

程序创建密码,并调用此方法以检查密码是否包含必需字段之一,例如大写字母,符号或数字.它被调用4个独立的源,然后它们用于告诉程序保留密码或创建一个新的密码,如果它不符合要求的标准.我已经完成了这个有趣的程序,以刷新我对Java的记忆,这不是任何人都会使用的真实程序.

private static boolean containsKeyword(String target, String source, int placement){
    String key = String.valueOf(source.charAt(placement));
    if(target.contains(key))
        return true;

    if(placement==0)
        return false;
    containsKeyword(target, source, placement-1);
    return false;
}
Run Code Online (Sandbox Code Playgroud)

bar*_*nos 6

你似乎错过了递归步骤的全部要点.

改变这个:

someFunc(a, b, nbr-1);
return false; 
Run Code Online (Sandbox Code Playgroud)

对此:

return someFunc(a, b, nbr-1);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,用完全相同的数据(字符串ab)递归调用此函数是没有意义的.

必须有其他东西你想用这个函数调用(也许是子字符串ab).