我一直在开发一个程序来计算输入文本中的元音。每次找到元音时,它都会使用此方法递归地添加元音计数。但是,每次 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);
}
}
最佳答案
我假设这是家庭作业,所以没有代码。
递归函数需要 base case 。您需要将基本情况定义为对于空输入返回 0(无元音),并在归纳步骤(递归调用)之前检查基本情况。
关于java - 防止递归函数导致 "out of bounds"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392210/