使用switch语句确定用户输入是元音还是不是元音

时间:2014-02-10 23:02:42

标签: java switch-statement

public class vowel { 
     private static int ch;    
     public static void main(String[]args){     
        char vowel;
        Scanner sc = new Scanner(System.in);     
        System.out.println("Enter alphabet:" );     
        vowel=sc.next().charAt(0);

    switch (ch){    
        case 'a':     
        case 'A':     
        case 'e':     
        case 'E':     
        case 'i':     
        case 'I':     
        case 'o':     
        case 'O':     
        case 'u':     
        case 'U':    
           System.out.println("This is a Vowel:"+ vowel);
           break;
        default:
           System.out.println("This is not a Vowel:"+ vowel);
           break;

        }
    } 
}

问题在于,无论我输入什么字母,它都会有结果说'这不是元音',尽管它是。

1 个答案:

答案 0 :(得分:3)

由于vowel是您正在查看的字母,因此您需要将其添加到switch语句中。您提供的第一个代码不知道您用于比较的变量。

switch(vowel){ //You need something here.
    case 'a':     
    case 'A':
    // continue with other vowels 
        System.out.println("This is a Vowel:"+ vowel);
        break;
    default:
        System.out.println("This is not a Vowel:"+ vowel);
        break;
}

不要打开ch,你甚至没有在你提供的代码中使用它。除非您在代码中的其他位置使用它,否则可以完全删除它。

<小时/> 的修改

如果你想查看一个完整的字符串,并检查每个字符串是否是元音,请尝试这样的事情

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);     
    System.out.print("Enter a word: " ); //Better prompt IMO
    String str = sc.next(); //Get the whole string
    char[] myChar = str.toCharArray(); //Turn the string into an array of char

    for (char c : myChar) { //For every char in the array
        switch (c) { //Check if it is a vowel or not
            case 'a':     
            case 'A':     
            case 'e':     
            case 'E':     
            case 'i':     
            case 'I':     
            case 'o':     
            case 'O':     
            case 'u':     
            case 'U':    
                System.out.println(c + " - Vowel"); //Easier for me to read
                break;
            default:
                System.out.println(c);
                break;
        }
    }
}