Veröffentlicht 2. August 201213 j 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 201213 j von dempsey
2. August 201213 j Autor 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
2. August 201213 j 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]
3. August 201213 j Ein else bezieht sich immer nur auf das letzte vorhergehende if. Das nennt sich Dangling else
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.