Я занимаюсь упражнениями, связанными с обработкой исключений. При использовании класса Scanner и последующих упражнений для проверки InputMismatchExceptions я получил следующие результаты из следующего кода.Ошибка: целые числа, добавленные вместе при последовательном использовании класса сканера
static Scanner sc = new Scanner(System.in);
public static void main(String[] args){
System.out.print("Enter an integer: ");
int a = getInt();
System.out.print("Enter a second integer: ");
int b = getInt();
int result = a + b;
System.out.println(result);
}
public static int getInt(){
while (true){
try {
return sc.nextInt();
}
catch(InputMismatchException e){
System.out.print("I'm sorry, that's not an integer."
+ " Please try again: ");
sc.next();
}
}
}
Выход был:
Enter an integer: 2 3
Enter a second integer: 5
кажется, что если для первого созыва nextInt() Я вхожу «2 3», или два целых числа с пространством между ними, в следующий раз, что nextInt() вызывается, он получает первые два целых числа, добавленные вместе, а затем останавливает программу. Что здесь происходит?
P.S. У кого-нибудь есть советы для меня в форматировании моего кода в лучшую сторону и сделать его более организованным для чтения других кодеров?
Смотрите, если [это] (http://stackoverflow.com/questions/13102045/skipping-nextline-after-use-next -nextint-or-other-nextfoo-methods). –
Я посмотрел, я не думаю, что это применимо. В любом случае спасибо. –