Получение пользовательского ввода - PullRequest
0 голосов
/ 04 июля 2019

Я пишу программу, в которой случайный метод генерирует случайное число от 1 до 100, а затем пользователь угадывает, что это за число. Пока все в коде, который я построил, работает нормально, кроме той части, где программа также вычисляет количество попыток угадать пользователя.

Мне известна общая идея, как получить счетчик попыток пользователя: создать переменную отслеживания счетчика, а затем увеличивать ее с каждой записью пользователя. Теперь независимо от того, как или где я применяю переменные для отслеживания количества, количество пользовательских попыток всегда равно 2, хотя реальных попыток гораздо больше. Я погуглил эту проблему и попробовал разные идеи из результатов (например: вставьте count ++ в каждое утверждение «если / еще»), но ничего не работает. Может кто-нибудь сказать, что не так с моим кодом, и почему он всегда показывает 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 Ответ

3 голосов
/ 04 июля 2019

Переместить эту строку: int guessCount = 0; Вне цикла, поскольку вы постоянно повторяете инициализацию переменной и, таким образом, фактически не считаете ее. Когда вы используете счетчик, всегда определяйте его вне циклов while / for. Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...