gpt4 book ai didi

java - Java : S to Start and Q to Quit中的错误检查

转载 作者:行者123 更新时间:2023-12-03 09:04:18 25 4
gpt4 key购买 nike

我是一名目前正在学习Java基础类(class)的学生。
我正在编写一个代码,要求用户输入游戏的“开始”和“退出”。所以我分别选择了字符串“S”和“Q”。如果用户输入S,则游戏继续进行。如果用户输入Q,程序将显示“谢谢您玩”或其他内容。如果用户输入的不是S和Q,程序将再次询问直到获得有效的输入。除了错误检查部分,我几乎一切正确。有任何建议可以修复我的代码吗?

先感谢您! :)

(部分代码)

    Scanner scan = new Scanner(System.in);
String userInput;
boolean game = false;

System.out.println("Welcome to the Game! ");
System.out.println("Press S to Start or Q to Quit");

userInput = scan.nextLine();

if (userInput.equals("S")){
game = true;
} else if (userInput.equals("Q")){
game = false;
} else {
do {
System.out.println("Invalid input! Enter a valid input: ");
userInput = scan.nextLine();
} while (!"S".equals(userInput)) || (!"Q".equals(userInput)); // I'm not sure if this is valid???
}

if (userInput.equals("S")){
///// Insert main code for the game here////
} else if (userInput.equals("Q")){
System.out.println("Thank you for playing!");
}

最佳答案

您正在创建一个无限循环:

while (!"S".equals(userInput)) || (!"Q".equals(userInput)); // always true

对于 而不是保持这种条件,您需要一个等于 "S" 等于 "Q"的输入。很容易看到应用 De-Morgan's law:
while (!("S".equals(userInput)) && "Q".equals(userInput))); // always true

显然,这不会发生。

您可能想要:
while (!"S".equals(userInput)) && (!"Q".equals(userInput));

关于java - Java : S to Start and Q to Quit中的错误检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com