В чем разница между командной строкой nextInt() и кодом nextInt()?
public static void main(String[] args) {
Scanner keyboard=new Scanner(System.in);
while(true){
try {
System.out.println("number:");
int numb=keyboard.nextInt();
break;
}
catch (Exception e){
keyboard.nextLine();//if I remove this line,my code
//always print try again.
System.out.println("try again :");
}
}
}
Вопрос 1)
Я так запутался, я знаю, что nextInt() всегда читает до \n, но если я ввожу "a", а затем нажимаю ввод, мой ввод преобразуется следующим образом: "a\n". В этом случае сначала попытайтесь перехватить блок "a" и напечатали попытку еще раз, затем \n перехватывается и снова печатается еще одна попытка. После этого мой код должен быть закончен, но он всегда печатает попытку снова. В чем смысл, который я пропустил?
Вопрос 2)
public static void main(String[] args) {
int numb=keyboard.nextInt();
}
В то время как приведенный выше код работает, если я нажимаю только ввод, этот код всегда запрашивает новый ввод. Но в первом вопросе он использует "a", а затем "\n".
Надеюсь, я четко объяснил свой вопрос.