我一直致力于计算输入文本元音的程序。每次发现元音时,它都会使用此方法递归添加元音计数。但是,每次lastPos
达到负数时,我都会出现一个越界错误1.如果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);
}
}
答案 0 :(得分:5)
我假设这是作业,所以没有代码。
递归函数需要base case。您需要定义基本情况,以便为空输入返回0(无元音),并在归纳步骤(递归调用)之前检查基本情况。
答案 1 :(得分:0)
在if
:
switch()
if (lastpos < 0) {
// stop the recursion
}