Всем привет, недавно начал изучать Java и сегодня столкнулся с проблемой. У меня есть задача: сделать с помощью map карточки для запоминания слов. Для этого я спрашиваю сколько карточек, а потом постепенно добавляю их. Код ниже:
Проблема в том что если вместо //поле я напишу int firstInput = sc.nextInt(); при запуске программы будет вывод: Input the number of cards:
>>2
The card #1:
The definition of the card #1:
>>one
The card #2
>>2:
The definition of the card #2:
>>two
компилятор просто пропускает строку nameCard = sc.nextLine();, и не просит ввести значение.
Но если я вместо поле напишу int firstInput = Integer.parseInt(sc.nextLine()); то вывод будет правильный: Input the number of cards:
>>2
The card #1:
>>1
The definition of the card #1:
>>one
The card #2:
>>2
The definition of the card #2:
>>two
Так же странно, что если я вместо //поле напишу String o = sc.nextLine();
int firstInput = 2;
то вывод будет правильным:Input the number of cards:
>>2
The card #1:
>>1
The definition of the card #1:
>>one
The card #2:
>>2
The definition of the card #2:
>>two
Почему происходит такая ошибка, и почему при строке int firstInput = sc.nextInt(); он не берёт первое значение карты, а просто перепрыгивает строку? Это связано с работой сканера или с чем то ещё?
Если есть какие-нибудь полезные материалы по этой ошибке, пожалуйста, оставьте на них ссылки!
![]()
