首页 > 解决方案 > 在while循环中要求用户在哪里再次玩(猜谜游戏)

问题描述

这是一个从 1-100 生成随机数并提示用户猜数字的游戏。玩完一个游戏后(用户猜对了数字),游戏会提示您再次玩。它应该在每场比赛之后询问,直到用户拒绝。

在我的代码中,第一个完成的游戏会将问题返回给用户,但之后的游戏不会询问,而是自动玩游戏。我在 while 循环中的语句位置是否不正确?

public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        playGame(reader);
        System.out.println("Do you want to play again? ");


        String userInput = reader.next();
        int minGuess = 0;

        while(userInput.indexOf("y")!=-1 || userInput.indexOf("Y")!=-1) {
            guessCount = playGame(reader);
            game++;
            System.out.println("Do you want to play again?"); //not sure about this placement
        }

        overallStatistics(game, guessCount, minGuess);

        }

标签: javamethodswhile-loop

解决方案


您应该在每次迭代结束时阅读用户答案:

while(userInput.indexOf("y")!=-1 || userInput.indexOf("Y")!=-1) {
        guessCount = playGame(reader);
        game++;
        System.out.println("Do you want to play again?");
        userInput = reader.next(); // read user answer
}

推荐阅读