获取最终else语句以运行Java递归方法

获取最终else语句以运行Java递归方法,java,recursion,Java,Recursion,除了最后的else语句外,这个类中的所有内容都有效。这是一个递归java字母测试仪。该程序测试用户单词的所有三个字母(e、l、f)。到目前为止,若单词不包含e、l和f,程序将抛出异常错误字符串索引 import java.util.Scanner; 公共类FRETYRECURSIONMETHOD{ 静态布尔值e=false; 静态布尔f=false; 静态布尔l=false; 静态int n=0; 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in);

除了最后的else语句外,这个类中的所有内容都有效。这是一个递归java字母测试仪。该程序测试用户单词的所有三个字母(e、l、f)。到目前为止,若单词不包含e、l和f,程序将抛出异常错误字符串索引

import java.util.Scanner;
公共类FRETYRECURSIONMETHOD{
静态布尔值e=false;
静态布尔f=false;
静态布尔l=false;
静态int n=0;
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符串用户字;
System.out.println(“输入一个单词”);
userWord=input.nextLine();
elfish(userWord,0);
}//末端总管
公共静态void elfish(字符串userWord,int n){
char ee=userWord.charAt(n);
如果(ee='e'| | ee='e'){
e=真;
}//如果结束,则结束
else if(ee='f'| | ee='f'){
f=真;
}//如果需要,则结束
else if(ee='l'| | ee='l'){
l=真;
}//如果需要,则结束
如果(e==true&&f==true&&l==true){
System.out.println(“你的话是精灵语!”);
}
else if(n
我很确定这是因为您没有正确终止递归。要检查
n+1
字符,当前n必须是
n-2
,否则
n+1
的值将超出范围。这是因为
charAt()
最多限制为
n-1

因此,在传递之前,您需要确保
n
小于
n-1

else if (n < userWord.length()-1) {
        elfish(userWord, n + 1);
else if(n
将n