0

我一直在开发一个程序来计算输入文本中的元音。每次找到元音时,它使用此方法递归地添加元音计数。但是,每次达到负 1 时都会出现越界错误。一旦达到 -1 lastPos,我怎样才能让它停止?lastPos

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);
    }
}
4

2 回答 2

5

我假设这是家庭作业,所以没有代码。

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

于 2012-05-01T00:37:31.203 回答
0

在:if之前插入一个switch()

if (lastpos < 0) {
  // stop the recursion
}
于 2012-05-01T00:38:05.183 回答