Schleife per knopfdruck verlassen???
-
Ich habe folgendes Problem und zwar befinde ich mich in einer do while schleife und ich möchte dass wenn ich einen knopf drücke z.b: "A" er sofort aus dieser schleife springt ? Wie kann ich das machen?
-
Was soll passieren wenn man nichts eingibt? Warten auf Eingabe oder Weiterlaufen der Schleife?
1. getch()
2. kbhit()
3. Siehe für 1. und 2. in der Konsolen-FAQ.MfG SideWinder
-
do { cout << "Geben Sie einen Tipp ab (2-12):\n"; cin >> c; cout << "Wieviel wollen sie auf die Zahl " << c <<" setzen?\n\tEuro"; gotoxy (1,12); cin >> b; if ( a / 2 <= b) { cout << "Sie haben zuviel gesetzt bitte setzen Sie nochmal!\n"; } d++; randomize (); e = random (10)+2; //------Visualisierung------ //-------------------------- cout << "Die gew"<<p<<"rfelte Zahl ist \n" << e; if ( c == e) { Beep(4000,4000); cout << "\nSie haben gewonnen!!!\n"; Sleep (2000); clrscr(); switch (e) { case 2 : f = ( b * 35); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 3 : f = ( b * 17); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 4 : f = ( b * 11); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 5 : f = ( b * 8); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 6 : f = ( b * 7); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; // Spiel 7 case 7 : f = ( b * 5); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; // Ende Spiel 7 case 8 : f = ( b * 7); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 9 : f = ( b * 8); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 10 : f = ( b * 11); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 11 : f = ( b * 17); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; case 12 : f = ( b * 35); a = ( a + f); cout << "Sie haben " << f << " Euro gewonnen\n"; Sleep(2000);clrscr (); anzeige (); kapital (); break; } } else { a = a - b; cout << " Sie haben leider verloren\n"; Sleep (2000); clrscr(); anzeige (); kapital (); } }while ( a > 0);
Aus dieser Schleife will ich raus wenn ich "a" drücke.
-
Setz doch einfach hinter den else Block:
cout << "Wollen Sie aufhoeren? ('j' zum aufhoeren)"; cin >> abbruch;
und dann die while-bedingung ändern in:
while ((a < 0) && (abbruch != "j"));
abbruch halt noch definieren (string abbruch = "")
Was anderes:
Bitte gib Deinen Variablen Namen, die das Lesen leichter machen (Dir und anderen)
"tipp" statt "c"
"einsatz" oder "eins" statt "b"
"kapital" oder "kap" statt "a"
"zahl" statt "e"PS: Da Du bei einer gewürfelten 2 und 12 das selbe machst
(das selbe bei 3 und 11 etc.)
kannst du auch schreiben (wenn ich nmich richtig erinnere):switch(e) { case 2,12: . . . .
-
Ok danke die Erklärungen zu den einzelnen Variablen stehen hinter den Deklerationen. habs soweit verstanden danke.
-
soll natürlich heissen (a > 0) und nicht (a < 0)