2017-07-21 28 views
-1

私は文字列中の母音の数を数えるクラスの中にメソッドを作成しています。まず、文字が変数であり、booleanの値を返したかどうかをテストするメソッドisVowel()を作成しました。次に、私はisVowel()メソッドを使ってcountVowels()メソッドを作成しました。しかし、私がcountVowels()メソッドのために書いたコードは動作していないようですが、私のisVowel()メソッドは動作し、文字でテストすると正しい値を返します。私が間違って何をしているのか?与えられた文字列中の母音数を数える

public int countVowels() { 
    int i = 0; 
    int counter = 0; 

    while (i < text.length()) { 
     String letter = text.substring(i, i + 1); // the ith letter 
     if (isVowel(letter) == true) { 
      counter++; 
     } else { 
      counter = counter + 0; 
     } 
     i++; 
    } 
    return counter; 
} 
+0

、あなたはドン場合 'else'ブロックを含める必要はありませんそれが必要です。 –

+0

何を試してみましたか?このコードは間違っていません –

+1

おそらく 'isVowel'メソッドを投稿するべきです。 –

答えて

0

正確に問題が何であるかは不明です。しかし、forループは、whileループではなく、手元のタスクに適しています。その後、あなたのisVowel方法はの線に沿って何かする必要があります

public int countVowels(){ 
    int counter = 0; 
    for(int i = 0; i < text.length(); i++){ 
     String letter = text.substring(i, i + 1); 
     if(isVowel(letter)) 
      counter++; 
    } 
    return counter; 
} 

すなわち

:サイドノートとして

public boolean isVowel(String c){ 
    String vowels = "aeiouAEIOU"; 
    return vowels.contains(c); 
} 
+0

forループが優れている理由を教えてください。 –

+2

@TuyenNguyen 'for'ループは、ループロジックを維持し、ループ内で反復変数(' i')の範囲を制限するため、より簡潔であるため、より優れています。 – Andreas

+0

私の先生は具体的にwhileループを望んでいますし、私のisVowel()はそれらの行に沿っていて正しい真偽値を返します。 – user8346999

関連する問題