if-else-Verzweigung in einer do-Schleife
-
hey,
ich bin noch sehr neu in c++-programmierung, von daher verzeiht mir bitte blöde fragen (wir haben ja alle mal angefangen :))
ich sitze hier an einer aufgabe und komme irgendwie nicht weiter bzw. weiß nicht so recht, wie ich das aufbauen soll.....
ich möchte in meinem programm gerne das alter abfragen und je nach alter, kommt dann zb die aussage: du darfst ein rotes auto fahren.
die if/else verzweigung hab ich hinbekommen, so daß mir das programm je nach alter entsprechende aussage gibt...
das alter habe ich definiert von 18 bis 40. nun möchte ich aber eine funktion einbauen, daß mein programm weiterhin hartnäckig nach dem alter fragt, wenn zb 41 eingegebn wird.
1. Kann ich das dann mit einer do-schleife verschachteln?
2. kann mir jemand von euch ein entsprechendes bsp geben, an dem ich mich orientieren könnte, wie eine do-schleife auszusehen hat?ich wäre euch sehr dankbar :))
-
Das ist recht einfach:
int alter; do{ [s]cin << alter;[/s] cin >> alter; }while (alter < 18 || alter > 40); //Rest
Das fragt so lange nach einer Eingabe, bis das Alter im zulässigen Bereich liegt.
-
MGOS schrieb:
Das ist recht einfach:
int alter; do{ cin << alter; }while (alter < 18 || alter > 40); //Rest
std::cin >> alter;
-
icarus2 schrieb:
MGOS schrieb:
Das ist recht einfach:
int alter; do{ cin << alter; }while (alter < 18 || alter > 40); //Rest
cin >> alter;
Der Rest ist ok.
Sry, bei denen weiß ich auch nie, ob man jetzt Shift drücken muss oder nicht... ^^
-
MGOS schrieb:
Sry, bei denen weiß ich auch nie, ob man jetzt Shift drücken muss oder nicht... ^^
Das machen bald die Hände von allein richtig rum.
Bis dahin könnte diese Eselebrücke helfen:
Die >> als Richtungspfeil lesen, wohin die Daten fließen.cin >> alter; //Daten fließen von cin in die Variable rein. cout << alter; //Daten fließen von der Variablen nach cout raus.
-
wooow, danke für die schnelle antwort :))
dann werde ich das doch gleich mal testen...der teil, der mich eben verwirrt ist folgender: ich habe meine altersbereich aufgespannt von 18 bis 40 Jahren.
18 bis 25 darf dann zb. ein rotes auto fahren
26 bis 30 ein blaues
etc. bis 40 Jahre.und das habe ich mit einer if/else verzweigung geschrieben, was auch wunderbar funktioniert.
kann ich die gleiche verzweigung dann genauso einbauen in meine schleife, damit er eben erkennt, wenn ein alter ausserhalb dieses bereiches eingegeben wird?
-
volkard schrieb:
MGOS schrieb:
Sry, bei denen weiß ich auch nie, ob man jetzt Shift drücken muss oder nicht... ^^
Das machen bald die Hände von allein richtig rum.
Bis dahin könnte diese Eselebrücke helfen:
Die >> als Richtungspfeil lesen, wohin die Daten fließen.cin >> alter; //Daten fließen von cin in die Variable rein cout << alter; //von der Variablen nach cout raus
Das weiß ich schon, nur manchmal passiert's halt aus Leichtsinn. spätestens beim Compilieren probieren hätt' ich's gemerkt ^^
-
volkard schrieb:
MGOS schrieb:
Sry, bei denen weiß ich auch nie, ob man jetzt Shift drücken muss oder nicht... ^^
Das machen bald die Hände von allein richtig rum.
Bis dahin könnte diese Eselebrücke helfen:
Die >> als Richtungspfeil lesen, wohin die Daten fließen.cin >> alter; //Daten fließen von cin in die Variable rein. cout << alter; //Daten fließen von der Variablen nach cout raus.
so kann ich mir das auch am besten merken
-
MrsHoummus schrieb:
kann ich die gleiche verzweigung dann genauso einbauen in meine schleife, damit er eben erkennt, wenn ein alter ausserhalb dieses bereiches eingegeben wird?
Du brauchst in der Bedingung deiner Schleife den Altersbereich nicht in kleinere Teile aufzubrechen, weil es einfach nichts anderes ist, als wenn du den ganzen Bereich nimmst. Das ändert nichts am Ergebnis der Überprüfung. Baue lieber die Verzweigung in den "body" (= deutsch??) der Schleife ein.
P.S. Nächstes Mal bitte auch deinen bisherigen Ansatz bzw. Code zur Lösung des Problems/der Aufgabe gleich mit zeigen.
-
[Rewind] schrieb:
"body" (= deutsch??) der Schleife
Schleifenkörper oder Schleifenrumpf.