请原谅我不熟悉编程,但是请充分享受到目前为止所学的知识.所以我的问题是;我正在尝试编写一个程序,提示用户输入字母,然后返回该字母是元音还是辅音.问题是我无法接受字母输入.如果强制为“ user_input =’a’”,它将接受它.但不是一种选择.我知道缺少一些简单的东西.
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int user_input;
System.out.print("Enter a letter: ");
user_input = in.nextInt();//
if (user_input == 'a')
{
System.out.println("Vowel");
}
else if (user_input =='e')
{
System.out.println("Vowel");
}
else if (user_input =='i')
{
System.out.println("Vowel");
}
else if (user_input =='o')
{
System.out.println("Vowel");
}
else if (user_input =='u')
{
System.out.println("Vowel");
}
else
{
System.out.println("Consonant");
}
}
提前谢谢您的宝贵时间.
解决方法:
由于您正在读取字符,因此应使用字符类型.另外,您想读取下一个字符,而不是下一个int. .next()将读取下一个字符串,然后charAt(0)仅获取第一个字符.
System.out.print("Enter a letter: ");
char user_input = in.next().charAt(0);
如果您不区分大小写,请执行以下操作:
char user_input = in.next().toLowerCase().charAt(0);
您也可以通过使用逻辑“或”而不是单独的if来减少代码的重复
if (user_input == 'a'
|| user_input =='e'
|| user_input =='i'
|| user_input =='o'
|| user_input =='u')
{
System.out.println("Vowel");
}
else
{
System.out.println("Consonant");
}
但是,您可能更喜欢切换语法方法
switch (user_input) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.println("Vowel");
break;
default:
System.out.println("Consonant");
break;
}
标签:java
来源: https://codeday.me/bug/20191120/2046214.html