Schleife in switch Anweisung



  • Moin Leudz,

    wie man unten sehen kann möchte ich ne Schleife in eine switch anweisung einbauen(Die Schleife ist im Mom inaktiv, damit das Programm trotzdem läuft).

    Ich bekomme dann aber immer Syntax Fehler ausgegeben:

    143 D:\Dokumente und Einstellungen\ich\Eigene Dateien\C++Programme\Aktionär\spiel.cpp syntax error before `!' token und

    165 D:\Dokumente und Einstellungen\ich\Eigene Dateien\C++Programme\Aktionär\spiel.cpp syntax error before `}' token

    switch(auswahl)
         {
             case 1 : {short test=0;
                      //do
                      //{
                      short Firma=0;
                      short Anzahl=0;
                      cout<<"\nVon welcher Firma moechtest du kaufen? ";
                      cin>>Firma;
                      cout<<"\nWie viele Aktien möchtest du kaufen? ";
                      cin>>Anzahl;
                      if(Firma ==1)
                      {ab1 = ab1+Anzahl;
                       geld = geld - (aktienkurs1 * Anzahl);
                       }
                      else 
                      {if (Firma == 2)
                      {ab2 = ab2+Anzahl;
                       geld = geld - (aktienkurs2 * Anzahl);}
                       else
                       {ab3 = ab3+Anzahl;
                       geld = geld - (aktienkurs3 * Anzahl);}}
                       cout<<"Was möchtest du jetzt tun? ";
                       cout<<"\n1. Nochmal kaufen  2. Verkaufen <inaktiv>  3. Einen Tag weiter gehen: ";
                       cin>>test;//}
                       //while (test != 3);
                       };break;
    

    Danke für eure Hilfe



  • Boah, könntest du den Code nicht übersichtlicher gestalten? Und poste bitte den Code mit der while Anweisung und allen drum und dran und den Zeilennummern, damit man da auch was finden kann. Echt schrecklich der Code, so wie er jetzt ist.

    MfG Riddick04



  • So ein paar

    Tags und ein bißchen bessere Einrückung als Service 
    
    Moin Leudz,
    
    wie man unten sehen kann möchte ich ne Schleife in eine switch anweisung einbauen(Die Schleife ist im Mom inaktiv, damit das Programm trotzdem läuft).
    
    Ich bekomme dann aber immer Syntax Fehler ausgegeben:
    
    143 D:\Dokumente und Einstellungen\ich\Eigene Dateien\C++Programme\Aktionär\spiel.cpp syntax error before `!' token und
    
    165 D:\Dokumente und Einstellungen\ich\Eigene Dateien\C++Programme\Aktionär\spiel.cpp syntax error before `}' token 
    
    [cpp]
    case 1 : 
    {
       short test=0;
       do
       {
          short Firma=0;
          short Anzahl=0;
          cout<<"\nVon welcher Firma moechtest du kaufen? ";
          cin>>Firma;
          cout<<"\nWie viele Aktien möchtest du kaufen? ";
          cin>>Anzahl;
          if(Firma == 1)
          {
             ab1 = ab1+Anzahl;
             geld = geld - (aktienkurs1 * Anzahl);
          }
          else 
          {
             if (Firma == 2)
             {
                ab2 = ab2+Anzahl;
                geld = geld - (aktienkurs2 * Anzahl);
             }
             else
             {
                ab3 = ab3+Anzahl;
                geld = geld - (aktienkurs3 * Anzahl);
             }
          }
          cout<<"Was möchtest du jetzt tun? ";
          cout<<"\n1. Nochmal kaufen  2. Verkaufen <inaktiv>  3. Einen Tag weiter gehen: ";
          cin>>test;
       } while (test != 3);
    };
    break;
    

    Danke für eure Hilfe



  • Könnte an den geschweiften Klammern liegen nach dem case, probiers mal so:

    case 1 :
       short test=0;
       do
       {
          short Firma=0;
          short Anzahl=0;
          cout<<"\nVon welcher Firma moechtest du kaufen? ";
          cin>>Firma;
          cout<<"\nWie viele Aktien möchtest du kaufen? ";
          cin>>Anzahl;
          if(Firma == 1)
          {
             ab1 = ab1+Anzahl;
             geld = geld - (aktienkurs1 * Anzahl);
          }
          else
          {
             if (Firma == 2)
             {
                ab2 = ab2+Anzahl;
                geld = geld - (aktienkurs2 * Anzahl);
             }
             else
             {
                ab3 = ab3+Anzahl;
                geld = geld - (aktienkurs3 * Anzahl);
             }
          }
          cout<<"Was möchtest du jetzt tun? ";
          cout<<"\n1. Nochmal kaufen  2. Verkaufen <inaktiv>  3. Einen Tag weiter gehen: ";
          cin>>test;
       } while (test != 3);
    break;
    

    MfG Riddick04

    EDIT: Und vielen Dank an templäd für den hilfreichen Service 😉 war echt schrecklich der Code vorher.



  • Moin Leudz,

    leider hats nicht funktioniert, aber danke für eure Hilfe. Hab mir was anderes einfallen lassen. Und danke für die Tipps mit der Übersichtlichkeit, werde si mir merken. Danke.

    Gruß Shihan



  • Riddick04 schrieb:

    Könnte an den geschweiften Klammern liegen nach dem case,

    Nein, das kann nicht sein. Wenn du eine Variable innerhalb einer case-Anweisung
    deklarieren willst, dann musst du sogar einen neuen Block oeffnen.

    mfg
    v R



  • virtuell Realisticer schrieb:

    Riddick04 schrieb:

    Könnte an den geschweiften Klammern liegen nach dem case,

    Nein, das kann nicht sein. Wenn du eine Variable innerhalb einer case-Anweisung
    deklarieren willst, dann musst du sogar einen neuen Block oeffnen.

    mfg
    v R

    Hey vituell Realisticer, danke für den Tipp. Jetzt funzt es. Hat mir ne Menge Arbeit erspart. Bis denne Shihan


Anmelden zum Antworten