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;
}
}
}
问题在于,无论我输入什么字母,它都会有结果说'这不是元音',尽管它是。
答案 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;
}
}
}