GOOGLE ADS

пятница, 15 апреля 2022 г.

Java, попробуйте поймать со сканером

Я создаю небольшой алгоритм, и это его часть.

Если пользователь вводит нецелочисленные значения, я хочу вывести сообщение и позволить пользователю снова ввести число:

boolean wenttocatch;
do
{
try
{
wenttocatch = false;
number_of_rigons = sc.nextInt(); // sc is an object of scanner class
}
catch (Exception e)
{
wenttocatch=true;
System.out.println("xx");
}
} while (wenttocatch==true);

Я получаю бесконечный цикл, и я не могу понять, почему.

Как я могу определить, вводит ли пользователь какое-то нецелое число?
Если пользователь вводит нецелое число, как я могу попросить пользователя ввести его снова?

Обновление
. Когда я печатаю исключение, я получаю «InputMismatchException», что мне делать?


Решение проблемы

Вам не нужно делать попытку поймать. Этот код поможет вам:

public static void main(String[] args) {
boolean wenttocatch = false;
Scanner scan = new Scanner(System.in);
int number_of_rigons = 0;
do{
System.out.print("Enter a number: ");
if(scan.hasNextInt()){
number_of_rigons = scan.nextInt();
wenttocatch = true;
}else{
scan.nextLine();
System.out.println("Enter a valid Integer value");
}
}while(!wenttocatch);
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...