Switch nur mit int



  • Laut Borland Hilfe:
    Kategorie

    Anweisungen

    Syntax

    switch ( <switch_variable> ){
    case 😡 <konstantenausdruck> 😡 : <anweisung>; [break;]
    .
    .
    .
    default : <anweisung>;
    }

    Beschreibung
    [...] Dabei muß 😞 <konstantenausdruck> vom Typ int 😞 sein und einen innerhalb der switch-Anweisung nicht mehrfach vorkommenden Wert haben.
    [...]

    Und das Beispiel ist mit einem Char-Typ. Mit welchen Typen funktioniert die switch Anweisung noch ??

    FGGF

    <edit>Zitate bitte auf das notwendigste beschränken. Danke.</edit>



  • Meines Wissens nur mit int und char (BYTE).

    Übrigens: Die 5km Text hättest Du Dir sparen können, der letzte Satz hätte auch gereicht.



  • Ein Char enspricht 1 Byte, numerische Wert kann natürlich jederzeit in einen grösseren Wert geschrieben werden (was hier durch einen impliziten Cast geschieht.)
    In sofern also kein Grund verrückt zu spielen.

    -junix



  • hallo,

    in c++ kann in einem switch jeder ordinale wert verwendet werden, also z. b. auch eigene typen wie etwa

    enum Test
    {
       Tag1, Tag2, Tag3, Tag4
    };
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       Test test;
       switch (test)
       {
          case Tag1: ... break;
          case Tag2: ... break;
          case Tag3: ... break;
          case Tag4: ... ;
       }
    }
    

    mfg
    murph



  • dies wurde doch schon gesagt ...
    enum hat intern die werte 1....2....3
    also sind es ebenfalls zahlen die dort in dem switch stehen.



  • ganzzahlige konstanten.
    mir fallen da ein
    char, short, int, long, long long und enum.
    und natürlich die ganzen typedefs wie size_t.


Anmelden zum Antworten