在用户在java中输入正确的输入之前,如何从用户那里获得输入?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在用户在java中输入正确的输入之前,如何从用户那里获得输入?相关的知识,希望对你有一定的参考价值。
我尝试在java中创建一个菜单并获取用户输入直到用户输入正确的输入,所以我在我的代码中使用了while()。但是当我运行我的代码时,唯一运行的是while循环,我输入输入的整个时间,甚至是正确的输入。
//Show Menu Of Languages
System.out.print("Welcome To iHome Application
Pleas Choose You're Wanted Language" +
"(Enter Number Of Language Or Type You're Wanted Language) :
1)English
or
2)Persian " + "
");
//Get Input From User
Scanner input = new Scanner(System.in);
String MenuLanguage = input.next();
//Get User Language Until User Enter The Right Format
while (!MenuLanguage.equalsIgnoreCase("1") || (!MenuLanguage.equalsIgnoreCase("English")) ||
(!MenuLanguage.equalsIgnoreCase("2")) || (!MenuLanguage.equalsIgnoreCase("Persian")) ) {
System.out.print("
Pleas Enter An Option From Above Menu. Try Again.
");
MenuLanguage = input.next();
}
if ((MenuLanguage.equalsIgnoreCase("1")) || (MenuLanguage.equalsIgnoreCase("English"))) {
} else if ((MenuLanguage.equalsIgnoreCase("2")) || (MenuLanguage.equalsIgnoreCase("Persian"))) {
System.out.print("Sorry. Persian Language Will Be Available Soon.");
}
但总是我的输出是:“请从菜单上方输入一个选项。再试一次。”
什么是我的问题?
答案
在while循环中,检查OR(||
)。用AND替换它(&&
)
while (!MenuLanguage.equalsIgnoreCase("1") && (!MenuLanguage.equalsIgnoreCase("English")) &&
(!MenuLanguage.equalsIgnoreCase("2")) && (!MenuLanguage.equalsIgnoreCase("Persian")) )
条件不能满足不同输入的OR。如果它是一回事,它将不会是其他3件事。使用和,您可以检查它不是4个条件。
以上是关于在用户在java中输入正确的输入之前,如何从用户那里获得输入?的主要内容,如果未能解决你的问题,请参考以下文章