java - 如果语句无法识别用户输入
问题描述
public static void getSolve(Scanner s) {
boolean validInput = false;
while(validInput == false) {
System.out.println("Would you like to try to solve the word? (yes or no)");
String input = s.nextLine();
if(input == "yes" || input == "Yes") {
validInput = true;
System.out.println("Enter your full guess: ");
String guess = s.nextLine();
if (guess == secretWord) {
System.out.println("You guessed the word!");
displayString = secretWord;
}
else {
System.out.println("Sorry, that is not the word");
NUM_LIVES --;
}
}
else if (input == "no" || input == "No") {
validInput = true;
}
else {
System.out.println("Sorry, that is not a valid input");
}
}
}
这是我用于为我的班级编写一个刽子手游戏的 java 项目的求解方法的代码。我正在尝试添加一个功能,询问用户是否想尝试解决这个词,然后检查他们是否猜对了。现在发生的情况是,无论用户输入什么,即使是“是”或“否”,程序都认为这是一个无效的输入,并再次提出问题,使代码陷入无限循环。我不太确定如何解决这个问题,我不确定我做错了什么。任何帮助是极大的赞赏!
解决方案
对我来说看起来不错,除了这个:
input == "yes" || input == "Yes"
应该
"yes".equalsIgnoreCase(input)
和别的:
guess == secretWord -> guess.equals(secretWord)
input == "no" || input == "No" -> "no".equalsIgnoreCase(input)
推荐阅读
- flutter - Flutter 测试驱动程序:点击 Android 模拟器中的相机按钮
- r - R 中 MinMaxScaler 的多个功能
- reactjs - React 不尊重 package.json 版本
- python - Python如何将带有特殊字符的字符串转换为日期时间
- pytorch - RuntimeError:CUDA 错误:使用 torch 多处理调用 torch.distributed.init_process_group 时出现初始化错误
- python - Python attrs/cattrs 使用冻结的 attrs 类作为字典键序列化字典
- java - quarkus 和 jwt 令牌、application.properties var 不起作用
- c - 打开和关闭 PIC24 上的 LED。我没有看到代码有问题。但是状态机似乎没有正确执行
- python - 在 Airflow subdag 中访问上下文
- python - 应用列中包含列表的数据框