我不认为我的阵列正在存储和数据

时间:2019-11-26 22:00:35

标签: java arrays

我是Java新手,现在正在上大学课程。我只是很好奇我缺少给自己输出的内容,因为现在控制台是空白的。

public static void main(String[] args) throws IOException {

    double avgScore;
    int highestScore, count = 0;
    String highScoringStudent;

    String names[] = null;
    int scores[] = null;

    File myFile = new File("Student_Data.txt");
    Scanner inFile = new Scanner(myFile);

    inFile.nextLine();

    while(inFile.hasNext()) {

        for(int i = 0; i > 0; i++) {
            names[i] = inFile.next();
            scores[i] = inFile.nextInt();
            count++;
        }
    }

    System.out.print("Name             Score");
    System.out.print(names[count] + "             " + scores[count]);
}

1 个答案:

答案 0 :(得分:2)

首先,我真的不建议在for循环内放置while,特别是在这种情况下(因为它不起作用)。这里有问题:

1)您的for循环以 i = 0 开始,并立即结束,因为!(i> 0)(i不是> 0 )-没错,数组中不会存储任何数据!

2)在for循环中,您正在读取一个字符串,然后一个一个读取一个int。阅读它们之后,应移至下一个字符串和整数,以存储在namesscore的下一个位置。

3)您没有增加i:因此(如果for在工作),您将继续在同一位置为数组分配不同的值(基本上每次都重置变量的值)

这将是适合您的情况的最佳代码:

int i = 0;

while(inFile.hasNext()) {
   names[i] = inFile.next();
   scores[i] = inFile.nextInt();
   count++;
   i++;
}

希望这对您有所帮助! :)