Intereting Posts
как сделать lucene без учета регистра java DatagramSocket получает данные Передача многоадресной рассылки что будет делать stream Finalizer, если в методе завершения Java существует бесконечный цикл или тупик Метод возвращает браузер по умолчанию в виде строки? App Engine: правильный способ запустить долгосрочную задачу в Backend с передней стороны? UnsatisfiedLinkError при использовании родной библиотеки JNI из приложения Grails java.lang.Exception: исключение исключений runnable в запуске JUnits Установите заголовки ответов JAX-RS в реализацию, не подвергая HttpServletResponse в интерфейсе firebase database onUpgrade – oldVersion – newVersion Как отсортировать HashMap на основе даты? Создание нереверсифицированных программ Java Как я могу отправить текстовое поле в запросе POST, который загружает blob в Blobstore и извлекает его в обработчик загрузки для blob? Почему Android использует Java? Невозможно заставить @RunA работать в EJB JAX-WS против JAX-RPC

повторный запрос пользователя после недопустимого ввода в java

Я пишу эту программу в java, где мне нужно повторно запрашивать пользователя после недопустимого ввода. Я пришел к решению только для обнаружения того, что если пользователь вводит другой недопустимый ввод после повторного запроса, он продолжается. Может кто-нибудь, пожалуйста, покажет мне лучшее решение? Я покажу вам, что у меня было:

System.out.println("What is your age?\n"); age = userInput.nextInt(); if((age > 120) || (age < 1)) {//error message System.out.println("ERROR Please enter a valid age"); System.out.println(""); System.out.println("What is your age?\n"); age = userInput.nextInt(); }//end if 

если пользователь ввел недопустимый ввод после того, как они были запрошены снова, программа просто продолжится, как я могу это преодолеть?

Заменить, if с помощью.

BAM, проблема решена.

Используйте цикл while.

 while (true) { System.out.println("What is your age?\n"); age = userInput.nextInt(); if ((age > 120) || (age < 1)) System.out.println("ERROR Please enter a valid age\n"); else break; } 

Вы можете ввести его в цикл while, чтобы он продолжал цикл до тех пор, пока условия не будут выполнены –

 System.out.println("What is your age?\n"); age = userInput.nextInt(); while((age > 120) || (age < 1)) {//error message System.out.println("ERROR Please enter a valid age"); System.out.println(""); System.out.println("What is your age?\n"); age = userInput.nextInt(); }//end if 

использовать do-while:

 boolean valid; do { System.out.println("What is your age?\n"); age = userInput.nextInt(); valid = age > 1 && age < 120; if (!valid) { System.out.println("ERROR Please enter a valid age"); } }while (!valid);