首页 > 解决方案 > 如果语句无法识别用户输入

问题描述

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 项目的求解方法的代码。我正在尝试添加一个功能,询问用户是否想尝试解决这个词,然后检查他们是否猜对了。现在发生的情况是,无论用户输入什么,即使是“是”或“否”,程序都认为这是一个无效的输入,并再次提出问题,使代码陷入无限循环。我不太确定如何解决这个问题,我不确定我做错了什么。任何帮助是极大的赞赏!

标签: java

解决方案


对我来说看起来不错,除了这个:

input == "yes" || input == "Yes"

应该

"yes".equalsIgnoreCase(input)

和别的:

guess == secretWord -> guess.equals(secretWord)
input == "no" || input == "No" -> "no".equalsIgnoreCase(input)

推荐阅读