获取用户输入计数

时间:2019-07-04 19:04:34

标签: java

我正在编写一个程序,其中random方法生成1到100之间的随机数,然后用户猜测该数字是多少。 到目前为止,我构建的代码中的所有内容都可以正常运行,除了程序还计算用户猜测尝试次数的部分。

我知道如何获取用户尝试次数的一般想法:创建一个计数跟踪变量,然后在每个用户条目中增加它。现在不管如何应用计数跟踪变量或在何处应用计数,即使实际尝试更多,用户尝试的次数始终为2。我用Google搜索了这个问题,并尝试了与结果不同的想法(例如:将count ++放入每个“ if / else”语句中),但是没有任何效果。 谁能说出我的代码出了什么问题,为什么它总是显示2作为用户尝试次数?预先感谢您的任何帮助。

System.out.println("Enter a number between 0 and 100: ");
int randomDigit = (0 + (int) (Math.random() * 101));

while (true) {
    Scanner scr = new Scanner(System.in);
    int guess = scr.nextInt();
    int guessCount = 0;
    guessCount++;
    guessCount = guessCount + 1;
    if ((guess < 0) || (guess > 100)) {
        System.out.println("You entered an invalid number. \nPlease enter a valid number.");
    } else if (guess > randomDigit) {
        System.out.println("Your guess is too high. \nPlease enter another guess.");
    } else if (guess < randomDigit) {
        System.out.println("Your guess is too low. \nPlease enter another guess.");
    } else if (guess == randomDigit) {
        System.out.println("Congradulations, you found the number!      It is " + randomDigit
                + ".\nThe number of attempts it took you to guess the correct answer is: " + guessCount + ".");
        break;
    }
}

上面的代码始终以2作为用户尝试次数。

1 个答案:

答案 0 :(得分:3)

移动此行: intguessCount = 0; 在循环之外,由于您不断重复变量的初始化,因此实际上并未对其进行计数。 使用计数器时,请始终在while / for循环之外定义它。 祝你好运