Вот мой код. Цель состоит в том, чтобы ввести некоторую базовую информацию (возраст, имя, пол) для x числа пациентов.Java - Пропуск строки при чтении пользовательского ввода в массив (для цикла)
public static void main(String[] args) {
int numPatients = 2;
int[] age = new int[numPatients];
String[] gender = new String[numPatients];
String[] name = new String[numPatients];
Scanner in = new Scanner(System.in);
/*
* Obtaining patients details: name, gender, age
* First create a Scanner input variable to read the data
*/
for (int i = 0; i < numPatients; i++)
{
System.out.println("Enter name of patient " + (i+1));
name[i] = in.nextLine();
System.out.println("Enter gender (male/female) of patient " + (i+1));
gender[i] = in.nextLine();
System.out.println("Enter age of patient " + (i+1));
age[i] = in.nextInt();
}
Проблема у меня есть, когда цикл переходит на 2-й переменной, т.е. я не могу ввести значение для имени пациента. Кажется, он пропускает вход туда и переходит непосредственно к следующему входу, который представляет собой пол.
Enter name of patient 1
Mark
Enter gender (male/female) of patient 1
Male
Enter age of patient 1
34
Enter name of patient 2 //Skipped. Could not enter input here
Enter gender (male/female) of patient 2
Jenna
Любая идея, почему это происходит? Лучше ли использовать BufferedReader?
Действительно интересно, и я бы не поймал этого. Спасибо за помощь, Грег. Он работает сейчас! – JPwire