您使用的是面向对象的语言,因此无需使用并行数组。您可以在dreamincode.net上查看 macosxnerd101 编写的这个很棒的教程:从并行数组移开。
您应该创建一个Student
对象:
public class Student {
private String name;
private double grade;
}
循环遍历学生并给他们评分。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Grades {
public final String[] names = { "Bashful", "Doc", "Dopey", "Grumpy",
"Happy", "Sleepy", "Sneezy" };
private List<Student> students;
public Grades() {
students = new ArrayList<Student>();
for (String name : names)
students.add(new Student(name));
int i = 0;
Scanner scan = new Scanner(System.in);
while (i < names.length) {
Student currStudent = students.get(i);
System.out.printf("Enter grade for %s: ", currStudent.getName());
double inputGrade = scan.nextDouble();
currStudent.setGrade(inputGrade);
i++;
}
scan.close();
System.out.println(students);
}
private class Student {
private String name;
private double grade;
public Student(String name) {
setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return String.format("%.2f%%", (grade * 100));
}
public void setGrade(double grade) {
this.grade = grade;
}
public String toString() {
return String.format("Name: %s, Grade: %s", getName(), getGrade());
}
}
public static void main(String[] args) {
new Grades();
}
}