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 に答える