Цель состоит в том, чтобы предложить пользователю угадать число от 1 до 10, генерирует случайное число от 1 до 10.Хотя цикл - казалось бы, не обращая внимания, если заявления
Если пользователь ввел неправильный номер сказать им, что они «Слишком высокий» или «Слишком низкий», и пусть они снова попытаются.
Следите за тем, сколько догадок пользователь делает.
Когда пользователь угадывает случайное число, сообщите им, сколько угадок они сделали.
Вот что у меня есть. Когда я ввожу число, он возвращает правильную инструкцию if в цикле while. Любой вход после этого возвращает тот же оператор if, даже если это неверно.
Неужели я не ошибаюсь? Что я делаю не так? Извините, я новичок в цикле.
public static void main(String[] args) {
System.out.println("Guess a number from 1 to 10.");
Scanner userInput = new Scanner(System.in);
int userNumber = userInput.nextInt();
int rand = (int) (Math.random()*10) + 1;
int numOfGuesses = 0;
while (userNumber != rand) {
if (userNumber > rand) {
System.out.println("Too high, guess again.");
numOfGuesses++;
} if (userNumber < rand) {
System.out.print("Too low, guess again.");
numOfGuesses++;
}
userInput.nextInt();
}
if (userNumber == rand) {
System.out.println("That's the correct number!");
numOfGuesses++;
System.out.println("You made " + numOfGuesses + " guesses.");
}
}
}
Для обоих < and > вы делаете то же самое: numOfGuesses ++; –
Шаг с отладчиком. Проверьте переменные/значения. – user2864740
@sureshatta Был ли я помещен numOfGuesses ++; в конце цикла while до userInput.nextInt() ;? Я не вижу, как это влияет на if-запросы, которые игнорируются. –