只从阵列中打印出女学生

时间:2012-03-26 08:06:12

标签: java arrays

如何从阵列中打印出仅限女性的学生。我目前的代码打印出所有学生。性别变量是布尔值(男性=真,女性=假)。

public class SMSMain {
    /**
     * 
     * @param args
     */
    public static void main(String[] args) throws IOException {
        Student student[] = new Student[3]; 
// Create an instance of student object
//set different attributes of the individual student.  
student[0] = new Student();  
student[0].setNewId(10);  
student[0].setName("Maria");
student[0].setGender(female);
student[1] = new Student();  
student[1].setNewId(11);  
student[1].setName("Mark");
student[1].setGender(male);
student[2] = new Student();  
student[2].setNewId(12);  
student[2].setName("Denise");
student[2].setGender(female);



System.out.println("\n\nFemale students are:");  
for(int i=0; i < student.length; i++){ 

System.out.println( "Student " + (i+1) + " Name :: " + student[i].getName() + ", Student ID :: " + student[i].getIdNumber()); 

4 个答案:

答案 0 :(得分:2)

for(int i=0; i < student.length; i++){
  if(!student[i].getGender()) {
     // do ur thing
  }
}

使用if条件检查学生是否为女性

答案 1 :(得分:2)

以下内容可行

System.out.println("\n\nFemale students are:");  
for(int i=0; i < student.length; i++){ 
    if (student[i].getGender() == false) {
       System.out.println( "Student " + (i+1) + " Name :: " + student[i].getName() + ", Student ID :: " + student[i].getIdNumber());
    }
}

此代码遍历数组中的每个对象,检查getGender返回的值是否设置为false(又名女性)。如果此条件为真,则执行print语句。

btw,正如其他海报所指出的那样,在这里使用名称Gender会产生误导,像isMale()isFemale()这样的方法会根据人的性别返回布尔值。更好的解决方案。

答案 2 :(得分:2)

稍微清理过的版本。

  • 将实际学生存储在本地变量中
  • 检查null学生以避免空指针异常
  • 使用了printf方法
  • 添加了一个额外的方法

for (int i = 0; i < student.length; i++) {
  Student student = student[i];
  if (student != null && isFemale(student)) {
    System.out.printf("Student %s Name :: %s, Student ID :: %s%n", 
                            i+1, student.getName(), student.getId());
  }
}

这使用方法

private boolean isFemale(Student student) {
  return (student.getGender() == false);
}

(我很快发明了这种方法,因为没有人真正理解女性没有性别;)

答案 3 :(得分:0)

类似的东西:

for (Student stud: student) {
  if (!stud.getGender()) {
     System.out.println(stud.getName());
  }
}