Я использую сканер для заполнения массива данными. Кажется, что это работает, потому что, когда я печатаю (player [i] .Name) в инструкции «if», он печатает значение. Но когда я пытаюсь напечатать это значение вне выражения (игроки [1] .Name), оно дает нулевое значение.Переменная массива Java, отображаемая как null?
int i = 0;
while (scanner.hasNextLine()) {
if (scanner.hasNext()) {
players[i].Name = scanner.next();
System.out.println(players[i].Name);
}
if (scanner.hasNext()) {
players[i].Position = scanner.next();
System.out.println(players[i].Position);
}
if (scanner.hasNext()) {
players[i].Height = scanner.next();
System.out.println(players[i].Height);
}
if (scanner.hasNext()) {
players[i].Weight = scanner.next();
System.out.println(players[i].Weight);
}
i++;
}//end while
Как написано, сканер поместит всех игроков в игроков [0], тогда цикл не будет 9 раз для i 1-> 9. Это также относится к полному коду? – Thomas
Вы уверены, что оператор scanner.next() возвращает некоторое значение для последнего iteratio .. он может быть заменен на нуль ... – ria
вы пробовали только цикл, который вы написали внутри цикла for ... Я думаю , Не нужно вводить в цикл ... – Vicky