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)
你似乎错过了递归步骤的全部要点.
改变这个:
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)
顺便说一句,用完全相同的数据(字符串a和b)递归调用此函数是没有意义的.
必须有其他东西你想用这个函数调用(也许是子字符串a和b).