无法将输出打印为(名称+成绩)

我正在尝试打印names + grades,但是我不知道如何。我可以尝试删除成绩,然后只有姓名才能打印,但我需要同时打印姓名和成绩(姓名+成绩)

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    System.out.print("Input the Number of Students:");

    int totalStudents = Integer.parseInt(in.nextLine());

    String[] studentNames = new String[totalStudents];

    System.out.println("Enter the Student Names:");
    for (int j = 0; j < studentNames.length; j++) {
        studentNames[j] = in.nextLine();
    }
    int[] grades = new int[totalStudents];
    System.out.println("Enter the Student Grades:");
    for (int i = 0; i < studentNames.length; i++) {
        grades[i] = in.nextInt();
    }

    for (String names : studentNames ; int grades : grades) {
        System.out.print(names);
        System.out.println(grades);
    }
}
buguizebinggan 回答:无法将输出打印为(名称+成绩)

如果您可以确保学生姓名的数组和一个年级的长度相同(并且应该如此),那么您可以轻松地按索引进行迭代

for (int x = 0; x < grades.length; x++) {
    System.out.print(names[x]);
    System.out.println(grades[x]);
}

也就是说,由于名称和年级是一起的(学生a的年级与呆板的a的名称毫无意义),所以面向对象的方法是创建一个将两者结合在一起的类。既然您显然只是从Java入手,我强烈建议您从一开始就这样做。

,

首先,不用每次都调用studentNames.lengthgrades.length,只需使用totalStudents,因为它代表了Arrays的长度。

请注意,gardes数组的类型应为double,而不是int

然后在填满两个Arrays之后,您可以使用:

for (int k=0; k < totalStudents ; k++) {
    System.out.println(names[k] + " : " + grades[k]);
}

或者也许您可以分别使用Map<String,double>names来握住gradesfor (Map.Entry<String,double> entry : yourMap.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); } ,然后使用以下命令打印它们会更容易:

Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36
本文链接:https://www.f2er.com/2754431.html

大家都在问