Select case in C++?



  • tacH!
    meine frage ist ob es wie in vba auch bei c++ die möglichkeit gibt eine variable zu nehmen und diese dann mit verschiedenen werten zu vergleichen und dann je nach wert einen bestimmten befehl ausführt?!?! in vba würde der code etwa so aussehen:

    Select Case MeineVariable
    Case "1"
      msgbox("1")
    Case "2"
      msgbox("2")
    Case Else
      msgbox("Wert nicht vorhanden!")
    End Select
    

    ich bin mir zwar völlich im klaren das ich das ganze auch mit if..else hin bekommen würde, jedoch würde es auf diese art übersichtlicher bleiben!

    mfg und danke schon mal fürs durchlesen 😉



  • Es gibt ein case, aber leider nur für Zahlen.
    Guck mal in dein C/C++ Buch oder Tutorial oder so.



  • es geht auch für einzelne Zeichen

    char Dummy;
    switch (Dummy)
    {
      case  1: bla();
              break;
      case 'c': foo();
              break;
      default: ieek();
              break;
    }
    


  • Das ganze nennt sich switch/case Anweisung, aber wie mein Vorredner schon betonte, nur für Zahlenwerte.

    Ansonst halt if-Abfragen nutzen...



  • Original erstellt von mich:
    tacH!
    meine frage ist ob es wie in vba auch bei c++ die möglichkeit gibt eine variable zu nehmen und diese dann mit verschiedenen werten zu vergleichen und dann je nach wert einen bestimmten befehl ausführt?!?! in vba würde der code etwa so aussehen:
    😉

    char buh[80]

    switch(buh)
    {
    case 1:
    break;
    case 'a':
    break;
    default:
    break;
    }

    btw richt deiner schwester nen gruß aus 😉



  • nicht nur zahlenwerte ... auch buchstaben ala case 'A':
    aber nicht wie in php strings



  • danke ma für eure antworten! naja wäre auch zu schön gewesen*fg* und jepp 1ntrud0r werd ich ausrichten!

    mfg
    Florian



  • Es gibt ein case, aber leider nur für Zahlen.

    es geht auch für einzelne Zeichen

    nicht nur zahlenwerte ... auch buchstaben ala case 'A'

    Was ein durcheinander.
    Ein switch kann auf Integralen und Aufzählungstypen sowie auf allen Typen die sich implizit in einen Integralen- oder Aufzählunstyp konvertieren lassen switchen. Einem case-Label darf ein konstanter integraler Ausdruck folgen.

    So einfach ist das. Da sind dann auch gleich noch die oben fehlenden booleschen Werte drin und floating point-Zahlen werden praktischer weise auch gleich ausgeschlossen 🙂



  • Ein switch kann auf Integralen und Aufzählungstypen sowie auf allen Typen die sich implizit in einen Integralen- oder Aufzählunstyp konvertieren lassen switchen. Einem case-Label darf ein konstanter integraler Ausdruck folgen.

    Hat jemand sowas schonmal gemacht?

    enum Foo {Bla, Blub};
    
    class Bar {
       operator Foo() 
       {
          ...
       }
    };
    

    Wie sonst erhält man Typen, die sich impliziet in Aufzählungen casten?


Anmelden zum Antworten