Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止递归函数导致;“禁止入内”;错误_Java - Fatal编程技术网

Java 防止递归函数导致;“禁止入内”;错误

Java 防止递归函数导致;“禁止入内”;错误,java,Java,我一直在做一个程序来计算输入文本中的元音。它使用此方法在每次发现元音时递归地添加元音计数。但是,每当lastPos达到负1时,我就会得到一个越界错误。当lastPos达到-1时,如何停止此操作 static int R_countVowels(String s, int lastPos) { switch (s.charAt(lastPos)) { case 'a': case 'A': case 'e': case 'E':

我一直在做一个程序来计算输入文本中的元音。它使用此方法在每次发现元音时递归地添加元音计数。但是,每当
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(无元音),并在归纳步骤(递归调用)之前检查基本大小写。

我假设这是作业,因此没有代码


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

开关()之前插入
if

if(lastpos<0){
//停止递归
}

开关()之前插入
if

if(lastpos<0){
//停止递归
}

通过添加一些代码来检查
lastPos
的值。如果这是作业,请在你的问题中添加“家庭作业”标记。通过添加一些代码来检查
lastPos
的值。如果这是作业,请在你的问题中添加“家庭作业”标记。谢谢,这帮了大忙。我只使用了return0;还不够,还可以抛出
IndexOutOfBoundsException
谢谢,这帮了大忙。我只使用了return0;停止。还不够,仍然可以抛出
IndexOutOfBoundsException
if (lastpos < 0) {
  // stop the recursion
}