Я создаю небольшой алгоритм, и это его часть.
Если пользователь вводит нецелочисленные значения, я хочу вывести сообщение и позволить пользователю снова ввести число:
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);
}
Комментариев нет:
Отправить комментарий