При вызове метода nextInt () текущая позиция входного потока переходит на следующую введенную строку.И после нажатия Enter вы вручную переходите к следующей строке.
Однако при вызове метода nextLine () поток ввода мгновенно переходит на следующую строку.
Установка метода nextInt ()в цикле может привести к тому, что функция прочитает что-то перед тем, как набрать текст, что вам не нужно.
Scanner sc = new Scanner(System.in);
int x;
do{
try{
x = sc.nextInt();
break;
}
catch(InputMismatchException e){
System.out.print("Enter an Integer");
}
}while(true);
Запускает цикл вечно, а
Scanner sc = new Scanner(System.in);
int x;
do{
try{
x = Integer.parseInt(sc.nextLine());
break;
}
catch(NumberFormatException e){
System.out.print("Enter an Integer");
}
}while(true);
не