因此,我试图验证用户是否输入是或否,并继续询问直到他们输入一个或另一个。到目前为止,这是我的代码。

System.out.println("Would you like a Diamond instead of a Pyramid? Type Yes or No");
String input2 = scan.nextLine();
boolean d = input2.equals("Yes");
System.out.println(d);

while ((d != false) ||  (d != true)) {
    System.out.println("Invalid Input. Please try again");
    input2 = scan.nextLine();
    d = input2.equals("Yes");
    System.out.println(d);
}


我要去哪里错了?我是Java新手。任何帮助将不胜感激。

编辑:我在写作方面很糟糕。我要的是这种逻辑。
询问用户是否要钻石而不是金字塔。
一种。用户必须输入“是”或“否”。
b。如果用户没有键入任何一个,请再次询问直到他们提供适当的输入。

最佳答案

您最终在无限循环

while ((d != false) ||  (d != true))


因为dboolean,即使已更新,也可以是truefalse,并且在两种情况下都满足上述条件。相反,您可以将其更改为

System.out.println("Would you like a Diamond instead of a Pyramid? Type Yes or No");
String input2 = scan.nextLine();
boolean d = input2.equalsIgnoreCase("Yes") || input.equalsIgnoreCase("No"); // confirms if the user input is Yes/No or invalid other than that
....
while (!d) { // d==false ' invalid user input
    System.out.println("Invalid Input. Please try again");
    input2 = scan.nextLine();
    d = input2.equalsIgnoreCase("Yes") || input.equalsIgnoreCase("No");
    System.out.println(d);
    // also printing a boolean would print either true or false base on your input; you migt want to perform some other action
} // this would exit on user input "Yes"

关于java - 尝试验证用户是否输入"is"或“否”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46481836/

10-12 03:51
查看更多