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) 🙂


Anmelden zum Antworten