java中的学生和成绩数组

时间:2015-01-17 20:15:24

标签: java arrays

我创建了两个数组。一个带有学生姓名的字符串和一个带有成绩的整数。数据由JOptionPane插入。现在如何显示比c?

更高等级的学生的姓名

3 个答案:

答案 0 :(得分:0)

       int key=9;
       int a = 0;

       boolean found = false;   

       for ( a = 0; a < grades.length; a++)
       {
       if (grades[ a ]  == key );
       {
       found = true;      
       break;
       }
       }

       if (found)   
       {

       JOptionPane.showMessageDialog(null,"Is found " + key "in the index:" +a  );

       System.exit(0);
      } 

&GT;我现在如何使-a返回该字符串内的字符(单词)而不是字符串位置

答案 1 :(得分:0)

正如你所说的那样,只需保存值,而不是索引。

int grade = grades[a];

String student = students[a];

虽然我需要再次强调它 - 但这不是一个好的设计。 Java是一种面向对象的语言,成绩应该是学生不可或缺的一部分。这个实现很混乱,应该按照以下方式重新制作 - 你声明一个新类:

public class Student{

    private String name;
    private int grade;

    //getters and setters to access private fields
    public String getName()
    {
         return this.name;
    }

    public void setName(String name)
    {
         this.name = name;
    }

    public int getGrade()
    {
         return this.grade;
    }

    public void setGrade(int grade)
    {
        this.grade = grade;
    }
}

然后你只需声明一个Student对象数组,你可以迭代它并有效地获取或修改任何学生数据:

ArrayList <Student> students = new ArrayList <Student> ();
students.add(new Student("John", 5);
students.add(new Student("Jane", 3);
students.add(new Student("Tim", 4);
for(Student s : students)
{
    //your operations here
}

答案 2 :(得分:-1)

您可以简单地遍历您的成绩数组并检查条件:

for (int i=0; i<grades.length; i++)
{
    if(grades[i] > "C") //insert your function here
}

但是,如果这两个参数密切相关,则应将它们包装到Student对象中。