В чем разница между командной строкой 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".

Надеюсь, я четко объяснил свой вопрос.

0 ответов

Другие вопросы по тегам