Altersnachfrage Schleife durchbrechen.
-
Hallo.
Ich stehe mal wieder vor einem problem und hoffe es kann mir jemand Hilfestellung geben. Ich bin im selbststudium daran mir C++ ein wenig näher zu bringen bzw. C++ zu lernen. Ich arbeite unter anderem mit dem Buch vonBjarne Strousstrup und muss als Aufgabe einen Serienbrief aufsetzen der den Benutzer diverse Daten abfragt wie zb. Name des Empfängers, Name des Freundes, Geschlecht ect. diese werden dann im Serienbrief verwendet. Nun hab ich die Aufgabe das Alter einzulesen und eine Fehlermeldung auszugeben wenn "alter" kleiner ist als 0 oder grösser als 110. Bis dahin ist bzw. wahr alles klar. nun stehe ich aber vor dem Problem das ich zwar eine Fehlermeldung ausgeben kann wenn das alter kleiner als 0 oder grösser als 110 ist aber alles was dazwischen korrekt eingegeben wird bleibt in der Schleife hängen. Wie kann ich den die Schleife verlassen damit bei korekter Eingabe des alters das Programm weiterläuft ? Die Altersabfrage habe ich so gelöst :int alter = -1; while (cin >>alter) { if (alter > 110 ) { cout << "Error !! Fehleingabe\n"; } if (alter <= 0) { cout << "Error !! Fehleingabe\n"; } }Gibt es eine möglichkeit das wenn der Benutzer das alter zwischen 0 und 110 eingibt die Schleife verlassen kann ?
Für Anregungen oder hilfe wäre ich Euch ausserordentlich dankbar.
Liebe Grüsse Dadeldi
-
Ich verstehe dass leider nicht so ganz

1. Nutz die Codetage "[ cpp ]" und "[ /cpp ]"
2. Poste doch mal den Code von der Schleife die du meinst.Lg freeG
-
break;
-
fr33g schrieb:
Ich verstehe dass leider nicht so ganz

1. Nutz die Codetage "[ cpp ]" und "[ /cpp ]"
2. Poste doch mal den Code von der Schleife die du meinst.Lg freeG
Hab Beitrag aus versehen zu früh abgeschickt..sorry . Jetzt sollte es verständlicher sein.
-
while (cin >>alter) { if (alter > 110 ) { cout << "Error !! Fehleingabe\n"; } else if (alter <= 0) { cout << "Error !! Fehleingabe\n"; } else { break; } }
-
Mit break.
-
knivil schrieb:
break;
Das Problem mit break; ist das ich jedesmal aus der Schleife fliege, Auch wenn die Benutzereingabe nicht korrekt ist. Ziel wäre es jedoch nach fehlerhafter Eingabe das Alter erneut einzugeben und erst wenn das alter zwischen 0 und 110 ist weiter zu springen.
Danke und Gruss
Dadeldi
-
Dann schreibe ein if drumherum.
-
knivil schrieb:
Dann schreibe ein if drumherum.
Wie kann ich im if das alter zwischen 0 und 109 abfragen ?
if (alter <110 >0) { break; }Wenn ich es so schreibe führen die fehleingaben von 0 und alles was drunter ist zum verlassen der Schleife. Ich kann nicht ausfindig machen wie ich die altersabfrage zwischen 0 - 109 korrekt formuliere.
Tut mir leid wenn ich Euch mit solch trivialen Probleme belästige, aber ich hab hier einen Knoten und würde diesen wenn irgendwie möglich gerne lösen. Leider kenne ich niemanden ausser Euch den ich um hilfe bitten könnte.
Danke und Gruss
Dadeldi
-
if ((0 < alter) && (alter < 110)) { break; }
-
knivil schrieb:
if ((0 < alter) && (alter < 110)) { break; }Vielen Dank für die Hilfe !
Gruss Dadeldi