Erste Schritte Begrüßung mit if-Bedingungen

Stefan111

Mitglied
Hallo,
das hier ist mein erster Beitrag 😉 als Aufgabe habe ich eine Begrüßung zu erstellen mit folgenden Bedingungen:

- über 18 und männlich dann
"Guten Tag Herr <name>!"
-über 18 und weiblich dann
"Guten Tag Frau <name>!"
-unter 18
"Hallo <name>!"

Leider bekomme ich keine Begrüßung von meinem Programm und weiß auch nicht genau wo jetzt der Fehler liegt. Vielleicht könnte einer von euch mir weiterhelfen.

So sieht mein Versuch aus das Problem zu lösen:

Java:
package praktikum;
import java.util.Scanner;

public class Aufgabe_3 {
private static Scanner keyboard;

public static void main (String[] args){
    keyboard = new Scanner(System.in);
  
    String Name ="";
    String Geschlecht ="";
    int Alter=0;
  
    System.out.println("Wie heißen Sie:"+Name);
    Name = keyboard.nextLine();
  
    System.out.println("Sind Sie männlich(m) oder weiblich(w):"+Geschlecht);
    Geschlecht = keyboard.nextLine();
  
    System.out.println("Wie alt sind Sie:"+Alter);
    Alter = keyboard.nextInt();
  
  
    if     (Geschlecht == "m" && Alter >18){
        System.out.println("Guten Tag Herr "+Name);
      
    if (Geschlecht == "w" && Alter >18);{
            System.out.println("Guten Tag Frau "+Name);
            }
    }
    if (Alter <18){
            System.out.println("Hallo "+Name);
        }
  
}
}
 
Zuletzt bearbeitet von einem Moderator:
Außerdem solltest du das Semikolon hinter deiner 2. if-Abfrage entfernen.
Für einen männlichen Erwachsenen wird sonst jedes Mal zusätzlich:
Java:
System.out.println("Guten Tag Frau "+Name);
ausgegeben.

Allgemein macht die Klammerung etwas wenig Sinn. Wenn jemand männlich und über 18 bist musst du ja nicht nochmal im Body überprüfen ob die Person weiblich ist. Bzw. es ist garnicht möglich weibliche Personen >=18 auszugeben weil die Bedingung nie überprüft wird.
 
Er sollte nicht das Semikolon entfernen sondern es fehlt eine geschweifte Klammer zu nach der ersten if-Abfrage. Die ist statt dessen an der falschen Stelle.
 
Java:
if (Geschlecht.equals("w") && Alter >18);{
            System.out.println("Guten Tag Frau "+Name);
            }

Das Semikolon sollte er definitiv entfernen. Die Ausgabe erfolgt nämlich immer. Da bringt das Klammer umsetzen auch nichts weil die Abfrage mit dem Semikolon praktisch sinnlos ist.

Aber unabhängig davon sollte er die Klammer umsetzen wie ich auch schon erwähnt hatte 😉
 

Zurück
Oben