dempsey Geschrieben 2. August 2012 Geschrieben 2. August 2012 (bearbeitet) Hallo Zusammen, ich muss mich hier ein wenig mit c++ auseinander setzen und ich würde mal behaupten zu wissen, wie eine einfache if / else Abfrage aufgebaut ist aber irgendwie habe bei c++ mit dem else. Es wird komischerweise "immer" ausgeführt und das ist ja nicht der Sinn der Sache. void Entladen(){ cout << "alle fertig? [0/1]" << endl; cin >> option1; if(option1 == 1){ cout << "eins" << endl; }; if(option1 == 0){ cout << "null" << endl; Entladen(); }; if(option1 != 0 && option1 != 1){ cout << "ausweich else" << endl; Entladen(); } else{ cout << "asd" << endl; } }; nicht wundern.. ich habe beim if(option1 != 0 && option1 != 1) mir nur eine else abfrage sozusagen erzeugt um das ganze zu testen. Dennoch wird überall das else (also "asd") mit ausgegeben. Bearbeitet 2. August 2012 von dempsey Zitieren
Klotzkopp Geschrieben 2. August 2012 Geschrieben 2. August 2012 Ein else bezieht sich immer nur auf das letzte vorhergehende if. Zitieren
dempsey Geschrieben 2. August 2012 Autor Geschrieben 2. August 2012 soll das mit anderen Worten heissen, ich sollte das else in der form weglassen?! ich habs früher mit auf den weg bekommen, dass ich immer ein else drinne haben soll wenn ich eine if abfrage mache Zitieren
Klotzkopp Geschrieben 2. August 2012 Geschrieben 2. August 2012 soll das mit anderen Worten heissen, ich sollte das else in der form weglassen?!Nein, es soll heißen, dass das else das Ergebnis der ersten beiden if-Anweisungen ignoriert. Außerdem brauchst du nicht 4 Zweige, wenn du nur 3 Fälle hast. void Entladen(){ cout << "alle fertig? [0/1]" << endl; cin >> option1; if(option1 == 1){ cout << "eins" << endl; } else if(option1 == 0){ cout << "null" << endl; Entladen(); } else { cout << "ausweich else" << endl; Entladen(); } }[/code] Zitieren
lilith2k3 Geschrieben 2. August 2012 Geschrieben 2. August 2012 Und K&R erfanden das Switch-Statement ... Zitieren
flashpixx Geschrieben 3. August 2012 Geschrieben 3. August 2012 Ein else bezieht sich immer nur auf das letzte vorhergehende if. Das nennt sich Dangling else Zitieren
lilith2k3 Geschrieben 4. August 2012 Geschrieben 4. August 2012 Das nennt sich Dangling else *g* der wird bauKlötze staunen (*_*) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.