Methoden Verschachtelte if else Methode

Hi Leute,

ich bin ganz neu eingestiegen in Java und arbeite gerade an einem kleinen "Fragebogen" um mich mit der Verschachtelung von if else auseinander zu setzen.

Ich hab jetzt ein kleines Problem, dass sich auch nach Tagen nicht so richtig lösen lässt. Vielleicht könntet ihr mir da helfen ?

Code:
import java.util.*;

public class WoM4
{
    public static void main(String[] args)
    {
        System.out.println("Meine Damen und Herren!");
        System.out.println("Hiermit werden wir herausfinden");
        System.out.println("was wir zusamme machen können!");
        System.out.println("Dafür werden Sie nur einige wenige Eingaben machen müssen!");
        System.out.println("Bitte antworten Sie so ehrlich wie möglich, oder garnicht.");
        System.out.println("Wir wollen schließlich keine Zeit verschwenden!");
        System.out.println("Erste Frage, sind sie m oder w?");
       
        Scanner scan = new Scanner(System.in);
        String antwort;
        antwort = scan.nextLine();

if (antwort.equals("w") || antwort.equals("weiblich") || antwort.equals("W") || antwort.equals("Weiblich") || antwort.equals("Ich bin weiblich"))  //GESCHLECHT
    {  //if w Anfang
   
{    System.out.println("Herzlichen Glückwunsch, sie sind weiblichen Geschlechts!");
    System.out.println("Verraten sie mir, wie alt Sie sind?");
}
int zahl;
zahl = scan.nextInt();

    if (zahl<18)
    { System.out.println("Leider bist du zu jung für mich, aber wenn wir");
    System.out.println( + (18-zahl) + " Jahre warten, dann können wir, du weißt schon was! Zwinker Zwinker!");
    }
    else if (zahl>=18 && zahl<=39)
            {    System.out.println("Perfekt! Also ersteinmal machen wir schlabber schlabber und dann knackiknacki! Zwinker!");
           
            }
       
    else if (zahl >= 40 && zahl <=69 )
            {    System.out.println("Tut mir leid. Ich bin Ihnen eh zu unreif. Aber Sie können mir gerne die Nummer");
            System.out.println("ihrer Tochter oder ihrer bis 39-Jährigen Schwester geben!");
            }
       
    else if (zahl >=70)
            {    System.out.println("Ich freue mich mit Ihnen Kekse zu backen!");
            }
   
    }  //if w Ende

if (antwort.equals("m") || antwort.equals("männlich") || antwort.equals("M") || antwort.equals("Männlich") || antwort.equals("Ich bin männlich"))    //GESCHLECHT_1.1
    { //if m Anfang
   
{    System.out.println("Sehr gut! Sie sind männlichen Geschlechts.");
    System.out.println("Verraten Sie mir wie alt Sie sind?");
}
int zahl;
zahl = scan.nextInt();

    if (zahl<18)
    {    System.out.println("Schade! Du bist zu jung. Aber wenn du");
    System.out.println(+(18-zahl)+" Jahre wartest, können wir gerne ein Bierchen trinken gehen!");
    }
    else if (zahl>=18 && zahl <=39)
    {    System.out.println("Lass uns weiber abschleppen und ein Bierchen trinken gehen!");
    }
    else if (zahl >=40 && zahl <=69)
    {    System.out.println("Ich wäre sehr geehrt, wenn Sie mir beizeiten ein wenig Ihrer Frauen-Aufreiss-Techniken beibringen würden! Auf ein Getränk Ihrer Wahl.");
    }
    else if (zahl >=70)
    {    System.out.println("Ich wäre geehrt mit Ihnen ein Cognac trinken zu dürfen!");
    }
   
    } //if m Ende   
   
else
{ System.out.println("Entweder haben Sie sich vertippt, oder sie leiden an einer Geistesstörung.");
    System.out.println("Bei ersteresm, starten Sie einfach den Test neu.");
    System.out.println("Sollte letzteres der Fall sein, suchen Sie bitte einen Psychologen auf.");
}

    }
}

Also der Teil "m Anfang" bis zu "m Ende" funktioniert so, wie er funktionieren soll. Aber bei dem ersten Teil "w Anfang" kommt nach der Geschlechtsabfrage, die Altersabfrage, und da kommt automatisch das letzte "else" mit. Ich versteh nicht ganz warum, ich habe den ersten Teil auch mit dem ganzen Code vom "m Anfang" übernommen, und auch da kommt das letzte else mit (was beim gewöhnlichen "m Anfang" nicht der Fall ist....

Ich wäre für jeden Vorschlag dankbar...!

LG,
Fallout
 

T_T

Bekanntes Mitglied
Probier es mal so:

Java:
if(Bedingung) {
    // Anweisung

} else if(Bedingung) { // oder }else{

// Anweisung
} else {
 // Anweisung
}
Deine Klammern bei deinen ifs sehen ziemlich wirr aus.

Und zudem könntest du anstatt
Java:
equals("w") || equals("W")
auch einfach
Java:
equalsIgnoreCase("w")
benutzen.
 
ich probier mal mit if else rum in ner anderen Klammer vielleicht, weil wenn ich die erste if (altersabfrage) in ein if else oder else if umschreibe nimmt mir eclipse das leider nicht.
Aber Danke für den Tipp mit IgnoreCase!
 

Robat

Top Contributor
Wenn du den Code aufs kürzeste reduzierst, wird dir auch klar warum der else-Block auch ausgeführt wird.
Java:
if(...) { // weiblich
    ...
}

if(...) { // männlich
   ...
} else {
   ..
}
Wenn die Bedingung für weiblich wahr ist, dann führt er den Block aus. Wenn er fertig ist prüft er ob man männlich ist - da man aber weiblich ist kann das nicht wahr sein und geht daher in den else-Block.
Was du sicherlich eher suchst ist :
Java:
if(<weiblich>) { 
   ...
} else if(<männlich>) {
   ...
} else {
   ...
}

@T_T es heißt else if nicht if else ;)
 

SchwarzWeiß

Bekanntes Mitglied
Rücke mal die Zeilen richtig ein, dann findet man Fehler bzgl. Klammern deutlich schneller. Und am besten noch Code in eigene Methoden auslagern, damit das ganze übersichtlicher wird, sonst blickst du da ganz schnell nicht mehr durch.
 
Tausend Dank Robat! Es war wirklich nur das eine else beim Anfang vom männlich Teil....
Ich hatte da nen Denkfehler und wär echt nie ohne Hilfe drauf gekommen. und danke an SchwarzWeiß und T_T, ich sollte echt gleich am Anfang mit Übersichlichkeit arbeiten, ist sicher keine schlechte Angewohnheit! :)
 

SchwarzWeiß

Bekanntes Mitglied
Du könntest beispielsweise anstatt
Java:
if (antwort.equals("w") || antwort.equals("weiblich") || antwort.equals("W") || antwort.equals("Weiblich") || antwort.equals("Ich bin weiblich"))  //GESCHLECHT
schreiben:
Java:
...
if(isWeiblich(antwort)){
...

und dann eine eigene Methode dafür
Java:
private static boolean isWeiblich(String antwort){
  if (antwort.equals("w") || antwort.equals("weiblich") || antwort.equals("W") || antwort.equals("Weiblich") ||  antwort.equals("Ich bin weiblich")){
   return true;
  } else {
   return false;
  }  //GESCHLECHT
}

dann hast du keine so lange Zeile im Hauptteil und man kann viel schneller lesen, was du da machst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
E Verschachtelte If-Anweisungen - "else without if" Java Basics - Anfänger-Themen 4
S Verschachtelte for-Schleife Java Basics - Anfänger-Themen 2
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
P Verschachtelte Hashmap Java Basics - Anfänger-Themen 6
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
B Verschachtelte For Schleifen Java Basics - Anfänger-Themen 8
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
S Verschachtelte Schleife Java Basics - Anfänger-Themen 3
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
Y Verschachtelte For-Schleife Java Basics - Anfänger-Themen 5
D verschachtelte Schleifen Java Basics - Anfänger-Themen 6
M Verschachtelte Forschleifen Java Basics - Anfänger-Themen 2
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
R Verschachtelte Arraylist und deren Größe auslesen Java Basics - Anfänger-Themen 7
C Verschachtelte Map auslesen Java Basics - Anfänger-Themen 4
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
F Verschachtelte Schleifen Java Basics - Anfänger-Themen 4
J Hilfe verschachtelte Schleifen Java Basics - Anfänger-Themen 5
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
G Collections verschachtelte ArrayList abfüllen Java Basics - Anfänger-Themen 5
X verschachtelte suche Java Basics - Anfänger-Themen 8
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
D Verschachtelte Objekterzeugung Java Basics - Anfänger-Themen 6
S verschachtelte for-Schleife Java Basics - Anfänger-Themen 6
X Verschachtelte Annotationen Java Basics - Anfänger-Themen 9
J verschachtelte Schleife Java Basics - Anfänger-Themen 10
P Verschachtelte Schleife vorzeitig abbrechen. Java Basics - Anfänger-Themen 50
S verschachtelte for Schleife und Ergebniss. Java Basics - Anfänger-Themen 3
J verschachtelte for-schleifen Java Basics - Anfänger-Themen 2
S Verschachtelte Klassen Java Basics - Anfänger-Themen 12
D Verschachtelte IF-Anweisung Java Basics - Anfänger-Themen 10
C Verschachtelte for-schleifen Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 5
3 Verschachtelte Zuweisung Java Basics - Anfänger-Themen 4
M Tief verschachtelte Packages Java Basics - Anfänger-Themen 7
T add-Methode für verschachtelte ArrayLists Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleife Java Basics - Anfänger-Themen 6
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
P Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 4
F Verschachtelte Arrays kopieren und überschreiben Java Basics - Anfänger-Themen 4
J Verschachtelte for schleife mit dynamischer Anzahl an Schleifen Java Basics - Anfänger-Themen 10
M Verschachtelte Strukturen. Java Basics - Anfänger-Themen 7
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
A Verschachtelte Hashtable ausgeben. Java Basics - Anfänger-Themen 3
W verschachtelte while schleife Java Basics - Anfänger-Themen 8
G Verschachtelte Case Fallunterscheidung Java Basics - Anfänger-Themen 7
W verschachtelte For-Schleife - continue Java Basics - Anfänger-Themen 8
R Verschachtelte Schleife? Java Basics - Anfänger-Themen 6
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
S verschachtelte while Schleifen Java Basics - Anfänger-Themen 5
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
I If / Else in Setter? Java Basics - Anfänger-Themen 8
M If-Else Java Basics - Anfänger-Themen 5
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
laxla123 If-else Java Java Basics - Anfänger-Themen 4
luggas89 If else auch mit unterschiedlichen Antworten Java Basics - Anfänger-Themen 5
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
pumpgun99 Fehler Meldung "else without if" Java Basics - Anfänger-Themen 3
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Übung Else if Java Basics - Anfänger-Themen 2
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
F if else if anfängerfrage Java Basics - Anfänger-Themen 22
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
T "Einkauf" & if else Struktur Java Basics - Anfänger-Themen 7
steven789hjk543 Input mit if-else Java Basics - Anfänger-Themen 23
H ERGÄNZUNGSFRAGE: Klammersetzung bei if-else Anweisungen und Schleifen Java Basics - Anfänger-Themen 2
A break; mit Einfluss hinter else if Block Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
C Variablen 'else' without 'if' Java Basics - Anfänger-Themen 4
F If - Else Java Basics - Anfänger-Themen 3
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K Frage zu If & else if Java Basics - Anfänger-Themen 5
R else if anweisungen Java Basics - Anfänger-Themen 2
Y Problem mit If-Else Verzweigung! Java Basics - Anfänger-Themen 9
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
Hijo2006 If-else Java Basics - Anfänger-Themen 6
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
T If/ Else If (zurückkehren) Java Basics - Anfänger-Themen 4
O Grosse If / Else verschachtelung übersichlitcher gestlten Java Basics - Anfänger-Themen 6
S Erste Schritte Unterschied "if" und "else if" Java Basics - Anfänger-Themen 27
M If in einem else Java Basics - Anfänger-Themen 14
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
J Mehrere IF Anweisungen und dazugehörige ELSE Java Basics - Anfänger-Themen 6
C else in if umschreiben Java Basics - Anfänger-Themen 2
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
E If...else... Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben