#java #loops #random #error-handling
Вопрос:
Как я могу добавить заявление об ошибке в цикл, если пользователь ввел буквы вместо цифр, но программа должна продолжить
package sample; import java.util.Scanner; import java.util.Random; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Random rand = new Random(); int playerGuess; int randomNum = rand.nextInt(50) 1; int numberOfAttempts = 0; while (true) { System.out.println("Guess a number from 1 to 50: "); playerGuess = scan.nextInt(); numberOfAttempts ; if (playerGuess == randomNum) { System.out.println("Congratulations! The number was: " randomNum); System.out.println("You got it in " numberOfAttempts " attempts."); break; } else if (randomNum gt; playerGuess) { System.out.println("Your guess is too low. Try again."); } else { System.out.println("Your guess is too high. Try again."); } } } }
Моя программа работает нормально, но я забыл, как добавить сообщение об ошибке в цикл. Может ли кто-нибудь помочь мне, где и как добавить заявление об ошибке, когда пользователь вводил буквы вместо цифр? Заранее спасибо! :)))
Комментарии:
1. Объявите
playerguess
и инициализируйте значение = 0. Используйте переменную в качестве условия ‘(playerGuess == 0)` для вашегоwhile
цикла. ПоместитеplayerGuess = scan.nextInt();
строку кода вtry/catch
ситуацию блока. Поместите весь остальной код в блокtry
кода и в конце добавьтеplayerGuess = 0;
. Вcatch
блоке сообщите Пользователю об ошибке и сделайтеplayerGuess
переменную = 0. Также используйте символ новой строки из нажатия клавиши ВВОДА (‘scan.nextLine();’). Если ты не можешь вспомнить, как…ты уже должен это сделать.
Ответ №1:
Вы можете проверить наличие ошибок с помощью блоков try и catch. Все, что вам нужно сделать, это поместить код, подверженный ошибкам, в блок try, проверить наличие ОПРЕДЕЛЕННОГО исключения и обработать его. Не оставляйте улов пустым, это плохая практика. Вы могли бы сделать это таким образом, но я бы рекомендовал использовать операторы if, чтобы проверить, содержат ли ваши входные данные числа