У меня возникла проблема с простой игрой, которую я пытаюсь создать. Я уверен, что это простая ошибка, но я не могу ее получить. Две ошибки на самом деле, одна из них заключается в том, что после каждого ее прохождения он не увеличивает numOfTries
, а другой - не правильно обрабатывает исключения. Я хочу, чтобы он выводил строку, когда ввод не является целым числом. Как исправить обе ошибки?Ошибка Java Guessing Game
/*
* Guessing game
*/
import java.util.*;
public class GuessNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System. in);
guess(input);
System.out.println("You got it correct after " + guess(input) + " tries");
}
public static int guess(Scanner input) {
Random randomNumber = new Random();
int numToGuess = randomNumber.nextInt(10);
int numOfTries = 0;
String prompt = "Enter your guess (integer from 1 to 10)";
numOfTries++;
getInt(input, prompt);
if (getInt(input, prompt) == numToGuess) {
return numOfTries;
} else if (getInt(input, prompt) != numToGuess) {
getInt(input, prompt);
}
return numOfTries;
}
public static int getInt(Scanner input, String prompt) {
int userGuess = 0;
System.out.println(prompt);
try {
userGuess = input.nextInt();
} catch (Exception e) {
System.out.println("You didn't enter an int");
}
return userGuess;
}
}
Определение "правильно" с точки зрения обработки исключений. –
Назначьте возвращаемое значение вашего первого вызова 'guess (input)' переменной и используйте эту переменную в своем вызове println вместо того, чтобы снова называть угадать. –
Вы снова вызываете методы вместо того, чтобы хранить результаты в переменных. Это не просто 'guess (input)', это также 'getInt (input, prompt)'. Позвоните еще раз - и он сделает все шаги снова, и это не то, что вы хотите. Кроме того, у вас нет цикла, и без этого вы не можете выполнить часть «попробуйте еще раз». – RealSkeptic