Я пишу цикл, чтобы заполнить массив. Я думаю, что у меня есть кодирование, но когда я запускаю скомпилированный код через Java, он не появляется в командной строке.Loop-> Array Output
Вот код:
import java.util.Scanner;
import java.io.*;
public class Pr42
{
public static void main(String[]args) throws IOException
{
int k,m,g;
String n;
//double g;
Scanner input1=new Scanner(System.in);
String[]Name=new String [5];
double[]Grade=new double[Name.length];
k=0;
while (k<Name.length)
{
m=k+1;
System.out.print("Enter the name of student "+m+": ");
Name[k]=input1.nextLine();
System.out.print("");
System.out.print("Please enter the grade of student "+m+": ");
Grade[k]=input1.nextInt();
k++;
}
}
}
Вот вывод в командной строке:
Введите имя студента 1:
Пожалуйста, введите класс студента 1:
Пожалуйста, введите имя студента 2: Пожалуйста, введите оценку студентки 2:
Проблема в том, что линия касается второго ученика.
Что я сделал не так в коде, чтобы получить такой вывод?
Получает ли он правильный ввод? можете ли вы проверить правильность названия ученика 2 и его оценки? – Amirag
Возможный дубликат [Проблема с сканером при использовании nextLine после следующегоXXX] (http: // stackoverflow.com/questions/7056749/scanner-issue-when-use-nextline-after-nextxxx) – Tom
, приводящий к тому, что декларация сканера внутри цикла также должна ее исправить. Но я предпочел бы прочитать nextLine() вместо nextInt() для оценки и проанализировать его/обработать исключение соответственно. – Jimmy