Я кодировал программу, которая вычисляет gcd (наибольший общий делитель) и lcm (наименьший общий множитель). Все отлично работает, кроме try {...} catch(...) {...}
. Вот часть кода, которая не работает так, как я хочу:
try {
num1 = Integer.parseInt(sc.nextLine());
}
catch(Exception e) {
System.out.println("Your input is not an integer (number w/o decimals)! Try again.");
System.out.print("Enter your first number: ");
num1 = Integer.parseInt(sc.nextLine());
}
При вводе, например, букв, он говорит:
Your input is not an integer (number w/o decimals)! Try again.
Enter your first number:
Но когда я набираю буквы во второй раз происходит сбой программы:
Exception in thread "main" java.lang.NumberFormatException: For input string: "asdf"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:658)
at java.base/java.lang.Integer.parseInt(Integer.java:776)
at GCDLCMgetter.main(GCDLCMgetter.java:56)
Возможно, я допустил очень простую ошибку, но не могу понять ...
Спасибо