如果语句比较字符串和读取用户输入,则无法工作

时间:2014-11-07 20:19:58

标签: if-statement user-input equals

我有一个字符串存储为"字" (来自另一种方法)并希望将其与存储为String" 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);
    }

}

1 个答案:

答案 0 :(得分:1)

每次执行

guess = input.next();
在开关/案例块中

,不检查是否输入了正确的单词。就像现在一样,即使输入了正确的单词,程序也会一直循环,直到变量i达到零,同时对接收的猜测一无所知。