如何从阵列中打印出仅限女性的学生。我目前的代码打印出所有学生。性别变量是布尔值(男性=真,女性=假)。
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());
答案 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
学生以避免空指针异常
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());
}
}