防止递归函数导致"越界"错误

JTM*_*JTM 0 java

我一直致力于一个用输入文本计算元音的程序.每次发现元音时,它都会使用此方法递归添加元音计数.但是,每次lastPos达到负数时,我都会出现一个越界错误.如果lastPos达到-1,我怎么能停止这个?

static int R_countVowels(String s, int lastPos) 
{           
    switch (s.charAt(lastPos))
    {  case 'a': case 'A':
       case 'e': case 'E':
       case 'i': case 'I':
       case 'o': case 'O':
       case 'u': case 'U': return (1 + R_countVowels(s, --lastPos));
       default: return R_countVowels(s, --lastPos);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*uel 5

我假设这是功课,所以没有代码.

递归函数需要基本案例.您需要定义基本情况,以便为空输入返回0(无元音),并在归纳步骤(递归调用)之前检查基本情况.