Java: Wie kann ich die Namen der Personen ausgeben, die ein Mindestalter erfüllen?
Ich habe folgende Aufgabenstellung:
Alterskontrolle. Namen ausgeben von denjenigen die Mindestalter erfüllen.
Wisst ihr weiter?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner keyScan = new Scanner(System.in);
Person[] personen = new Person[5];
personen[0] = new Person("Hans", 12);
personen[1] = new Person("Peter", 23);
personen[2] = new Person("Klara", 34);
personen[3] = new Person("Berta", 15);
personen[4] = new Person("Ulf", 5);
System.out.print("Bitte Mindestalter eingeben: ");
int min = keyScan.nextInt();
// TODO: Namen aller Personen ausgeben, welche das Mindestalter erfüllen
keyScan.close();
}
}
Hinterlegte bereits existierende Personenklasse an der nichts mehr gemacht werden muss:
public class Person {
private String name;
private int alter;
public Person(String name, int alter) {
this.name = name;
this.alter = alter;
}
public String getName() {
return name;
}
public int getAlter() {
return alter;
}
}
1 Antwort
Um die Namen aller Personen auszugeben, die das Mindestalter erfüllen, können Sie eine Schleife verwenden, um jedes Element im Array personen zu durchlaufen und zu prüfen, ob es das Mindestalter erfüllt. Wenn es das Mindestalter erfüllt, können Sie den Namen der Person mithilfe der getName()-Methode ausgeben.
Hier ist ein Beispiel für eine mögliche Implementierung:
Copy code
for (int i = 0; i < personen.length; i++) {
Person p = personen[i];
if (p.getAlter() >= min) {
System.out.println(p.getName());
}
}
In der obigen Schleife wird zunächst eine Variable i initialisiert, die als Index für das Array personen verwendet wird. Die Schleife wird so lange ausgeführt, wie der Index kleiner als die Länge des Arrays ist. In jedem Schleifendurchlauf wird das Element im Array an der Stelle i in eine lokale Variable p kopiert und dann überprüft, ob das Alter der Person größer oder gleich dem Mindestalter ist. Wenn dies der Fall ist, wird der Name der Person mithilfe der getName()-Methode ausgegeben.
Die For-Schleife verstehe Ihrer Antwort leider nicht. person : personen. Den Rest des Code verstehe ich ;) Vielen Dank für die Hilfe.
Vielen Dank für die sehr hilfreiche Antwort. Ich habe immer diese Zeile hier vergessen:
Person p = personen[i]
Dann funktionierte die Getter-Methode mit dem Alter nicht.
Was genau macht die obenstehende Zeile? Sie speichert die Daten des jeweiligen Objekt (also beide Attribute Alter und Name in der Variable p) ?
Und erst danach wird das Alter geprüft mit der getName Methode? Nur um sicher zu gehen, dass ich es richtig verstehe. So oder so besten Dank! Liebe Grüsse
Vielen Dank für die sehr hilfreiche Antwort. Ich habe immer diese Zeile hier vergessen:
Person p = personen[i]
Dann funktionierte die Getter-Methode mit dem Alter nicht.
Was genau macht die obenstehende Zeile? Sie speichert die Daten des jeweiligen Objekt (also beide Attribute Alter und Name in der Variable p) ?
Und erst danach wird das Alter geprüft mit der getName Methode? Nur um sicher zu gehen, dass ich es richtig verstehe. So oder so besten Dank! Liebe Grüsse
Wie wäre es mit:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner keyScan = new Scanner(System.in);
Person[] personen = new Person[5];
personen[0] = new Person("Hans", 12);
personen[1] = new Person("Peter", 23);
personen[2] = new Person("Klara", 34);
personen[3] = new Person("Berta", 15);
personen[4] = new Person("Ulf", 5);
System.out.print("Bitte Mindestalter eingeben: ");
int min = keyScan.nextInt();
// TODO: Namen aller Personen ausgeben, welche das Mindestalter erfüllen
for (Person person : personen) {
if (person.getAlter() >= min) {
System.out.println(person.getName());
}
}
keyScan.close();
}
}
public class Person {
private String name;
private int alter;
public Person(String name, int alter) {
this.name = name;
this.alter = alter;
}
public String getName() {
return name;
}
public int getAlter() {
return alter;
}
}