【问题标题】:Not able to print the output as (name + grades)无法将输出打印为(姓名+成绩)
【发布时间】:2020-01-17 06:11:25
【问题描述】:

我正在尝试打印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);
    }
}

【问题讨论】:

  • 有趣的想法。使用for (int index = 0; index &lt; totalStudents; index++) {..},然后单独索引每个元素(即studentNames[index]grades[index]

标签: java arrays string parseint


【解决方案1】:

如果您可以确保学生姓名数组和成绩之一具有相同的长度(并且应该),那么您可以轻松地通过索引进行迭代

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

也就是说,由于姓名和成绩属于同一类(学生 a 的成绩与学生 a 的姓名无关),面向对象的方法是创建一个将两者结合在一起的类。由于您显然只是从 java 开始,我强烈建议您从一开始就这样做。

【讨论】:

    【解决方案2】:

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

    注意gardes 数组的类型应该是double 而不是int

    填完Arrays之后就可以使用了:

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

    或者你可以使用Map&lt;String, double&gt;分别持有namesgrades,这样打印起来会更容易:

    for (Map.Entry<String, double> entry : yourMap.entrySet()) {
        System.out.println(entry.getKey() + " : " + entry.getValue());
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多