Мне нужно защитить приложение от краша в случаи ввода букв в интовом сканнере. Но в данном случае, если ввести буквы, оно примет нужное значение, но при повторном прохождении цикла сканер пропускается. подскажите как исправить?
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter 1,2,3 or 0?");
int a=0;
for(int i=0;i<3;i++)
{
if(sc.hasNextInt()) a=sc.nextInt();
else a=0;
if(a==1) System.out.println("a 1");
if(a==2) System.out.println("a 2");
if(a==3) System.out.println("a 3");
if(a==0) System.out.println("a 0");
}
System.out.println("усё");
}
int a = 0;
while (true) {
try {
Scanner scan = new Scanner(System.in);
System.out.print("Enter 1,2,3 or 0?");
a = scan.nextInt();
if (a<0 || a>3) throw new InputMismatchException();
break;
} catch (java.util.InputMismatchException e) {
System.out.println("Некорректный ввод!");
}
}
System.out.println("a "+a);
System.out.println("усё");
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости