If statement 使用if语句比较字符串和读取用户输入时遇到问题

If statement 使用if语句比较字符串和读取用户输入时遇到问题,if-statement,user-input,equals,If Statement,User Input,Equals,我将一个字符串存储为“word”(来自另一个方法),并希望将其与存储为字符串“guess”的用户输入进行比较。程序会根据需要打印出来,并允许用户输入,但它不会读取看起来的输入。当输入正确的单词时,它仍会继续转到开关盒上的默认值,直到“i”值达到0,然后打印该盒。我知道这可能是一个简单的解决办法,但我已经花了一个晚上在这方面,并将感谢任何帮助 String word = chooseRandomWord(words); int i = scrambledWord.length();

我将一个字符串存储为“word”(来自另一个方法),并希望将其与存储为字符串“guess”的用户输入进行比较。程序会根据需要打印出来,并允许用户输入,但它不会读取看起来的输入。当输入正确的单词时,它仍会继续转到开关盒上的默认值,直到“i”值达到0,然后打印该盒。我知道这可能是一个简单的解决办法,但我已经花了一个晚上在这方面,并将感谢任何帮助

   String word = chooseRandomWord(words);

   int i = scrambledWord.length();
   Scanner input = new Scanner(System.in);

    System.out.println(i + " Points: What is your guess?");

    String guess;
    guess = input.next();

    if (guess.equals(word)) {
        System.out.println("Congragulitions! your score is " + i + " points");
        System.out.println("the word was " + word);
        System.exit(0);
    }

    if (!guess.equals(word)) {
        while (i >= 0) {
            switch (i) {
                case 0:
                    System.out.println("sorry the word was " + word);
                    System.exit(0);
                default:
                    i--;
                    System.out.println(i + " Points: what is your guess?");
                    guess = input.next();

            }
        }

    }
    else {
        System.exit(0);
    }

}
每次执行

guess = input.next();

在switch/case块中,没有检查是否输入了正确的单词。现在的情况是,即使输入了正确的单词,程序也会一直循环,直到变量i达到零,同时对收到的猜测不做任何处理。

我明白你的意思。一旦检查了if,就不会再次检查它。因此,如果我将if语句改为“while”,应该可以正确处理这个问题?如果您建议将关键字“if”的出现次数改为“while”,那么不,这不会解决问题。有很多方法可以做到这一点;你可以简单地复制粘贴这个块
if(guess.equals(word)){System.out.println(“一致性!你的分数是“+i+”分”);System.out.println(“单词是“+word”);System.exit(0);}
guess=input.next()之后语句。