在第一个循环之后的While循环中,它确实突破了While循环,但它没有进入我的If检查,有没有人看到我做错了什么?
while (!"Y".equals(inputString) && !"N".equals(inputString)) {
inputString = Helper.InputHelper().toUpperCase();
if (inputString.equals("N")) {
System.out.println("Thank you for playing!");
System.exit(0);
} else if (inputString.equals("Y")) {
System.out.println("Starting a new game");
MineSweeper game;
game = new MineSweeper();
}
}
每个人都是对的我是脑力衰退,将其改为
System.out.println("Would you like to play another game? (Y/N): ");
String input = "";
while (!"Y".equals(input) && !"N".equals(input)) {
input = Helper.InputHelper().toUpperCase();
if (input.equals("N")) {
System.out.println("Thank you for playing!");
System.exit(0);
} else if (input.equals("Y")) {
System.out.println("Starting a new game");
MineSweeper game;
game = new MineSweeper();
}
}
并且完美无瑕地谢谢你。
答案 0 :(得分:0)
您必须重复阅读while循环中的用户输入 。 通常这是一个do-while-loop。
String inputString = null;
do
{
inputString = new Scanner(System.in).next();
System.out.println("inputString = " + inputString);
}
while (!"Y".equals(inputString) && !"N".equals(inputString));
答案 1 :(得分:0)
while (!"Y".equals(inputString) && !"N".equals(inputString))
你在while循环条件下遇到问题。
如果inputString不等于Y并且不等于N,则告诉while,然后输入while!
如果inputString等于Y
或等于N
,则应该输入循环。
否则您需要用户继续输入inputString
答案 2 :(得分:0)
我打赌这就是你想要的。
Scanner input = new Scanner(System.in);
while (true) {
String answer = input.next().toUpperCase();
if (answer.equals("N")) {
System.out.println("Thank you for playing!");
// don't forget to close you scanner
input.close();
System.exit(0);
break;
} else if (answer.equals("Y")) {
System.out.println("Starting a new game");
MineSweeper game;
game = new MineSweeper();
input.close();
break;
} else {
// if you don't get appropriate answer from users then warn them about it
System.out.println("Please type either Y or N");
}
}
无论哪种方式,当你遇到这种情况时,你应该打破,否则没有弯腰那个循环。
答案 3 :(得分:0)
始终建议您使用值进行一些测试,例如:
如果inputString =" N" while部分将评估为(!" Y" .equals(" N")&&!" N" .equals(" N&# 34)) 所以左边的部分是真的,右边的部分是假的,而AND使它全部为假,而无论用户是否放置N或Y,则while条件都不为真。 我认为你应该使用||简化你的while条件(OR)运算符并删除NOT(!)运算符。