Skip to content
Advertisement

incompatible types boolean can not be converted to char [closed]

public class WordPlay {

    public boolean isVowel(char ch) {
        String vowels = "aeiouAEIOU";
        int i;
        for (i = 0; i < vowels.length(); i = i + 1) {
            char v = vowels.charAt(i);
            if (v == ch) {
                return true;
            } else {
                return false;
            }
        }
    }

    public void testIsVowel() {
        char value = isVowel('a');
        System.out.println(value);
    }
}

I am getting an error saying: “cannot convert boolean to char” for line 15 (that is the line: char value = isVowel('a')). My last method is a tester method to see if the isVowel char will print true or false for any char that I place in there. Very new to Java don’t know how to continue from here.

Advertisement

Answer

So there are a few things wrong with your loop. So I decided to give you a refactored code.

    public boolean isVowel(char ch) {
    String vowels = "aeiouAEIOU";
    boolean isVowel = false;
    //the int can be declared in the loop. There is no need for i = i + 1
    for (int i = 0; i < vowels.length(); i++) {
        if (vowels.charAt(i) == ch) {
            //If there is a vowel, just exit the loop with the result.
            isVowel = true;
            break;
        }
    }

    return isVowel;
}
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement