Verschachtelte If Bedingung

TheMenox

Aktives Mitglied
Kurze Frage: warum wird beim Ausführen des folgenden Codes das zweite else Statement bei einem wert unter 100 ausgeführt? Nach meinem Verständnis müsste das Programm nach "erfolgreicher" Ausführung der ersten If Bedingung doch geschlossen werden, somit würde sämtlicher Code innerhalb des "äußeren" else Statements doch sozusagen ignoriert werden...

Edit: Liegt das daran, dass ich die geschweiften Klammern weggelassen habe?

Danke schon mal im Voraus für etwaige Hilfe

Java:
int IQ = 88;
        if(IQ < 100)
            System.out.println("Schlechter als der Durchschnitt.");
        else
            System.out.println("Besser als der Durchschnitt.");
            if(IQ > 130)
                System.out.println("Mach den Mensa Test!");
            else
                System.out.println("Aber nicht intelligent genug für Mensa.");
 
Ja ohne geschweifte Klammern ist immer NUR das 1.Statement direkt nach dem "else" Teil des "else" Blocks.
Tipp daher: Immer mit Klammern arbeiten auch wenn es nur 1 Statement gibt 😉

Auch die Code Einrückung hat keine Auswirkung auf die Durchführung und dient nur der Übersicht
 
Ach ja natürlich, ich vergas... 😀 danke🙂
Das mit der Einrückung war mir klar, finde ich so aber einfach schöner😉
 
Ganz korrekt kann man soetwas nicht machen, denn unter 85 Esel schreiben, wäre unfreundlich.

Deine frei erfundene Einrückung zerstört den Lesefluss. Wenn niemand außer dir das lesen soll, ist es Ok.

Meine Ide sagt sogar, Confusing indentation (auch bedingt durch die Einrückung). Meintest du:
Java:
int iq = 88;
        if (iq < 100) {
            System.out.println("Schlechter als der Durchschnitt.");
        } else {
            System.out.println("Besser als der Durchschnitt.");
        }
        if (iq > 130) {
            System.out.println("Mach den Mensa Test!");
        } else {
            System.out.println("Aber nicht intelligent genug für Mensa.");
        }

Java:
int iq = 88;
        if (iq < 100) {
            System.out.println("Schlechter als der Durchschnitt.");
        } else {
            System.out.println("Besser als der Durchschnitt.");
            if (iq > 130) {
                System.out.println("Mach den Mensa Test!");
            } else {
                System.out.println("Aber nicht intelligent genug für Mensa.");
            }
        }

Java:
int iq = 88;
        if (iq < 100) {
            System.out.println("Schlechter als der Durchschnitt.");
        } else if (iq < 130) {
            System.out.println("Besser als der Durchschnitt.");
        } else {
            System.out.println("Mach den Mensa Test!");
        }

?
 

Neue Themen


Zurück
Oben