[Gelöst]switch anweisung verkürzen[Neue Frage]



  • Hallo,

    ich habe in meinem Programm eine switch anweisung und wenn eine Zahl eins,zwei oder drei ist wird eine andere Zahl auch eins,zwei ,drei...

    switch (val) {
    case 1:
     val1 = 1;
     break;
    case 2: 
     val1 = 2;
     break;
    case 3:
     val1 = 3;
     break;
    default:
     cout << "Fehler!";
     exit(1);
     break;
    }
    

    jetzt war meien Frage ob man dies auch kürzer scheiben kann...



  • if (val >= 1 && val <= 3)
      val1 = val;
    else {
      cout << "Fehler!";
      exit(1);
    }
    

  • Administrator

    if(val < 1 || val > 3)
    {
      std::cout << "Fehler";
      // mach was.
    }
    else
    {
      val1 = val;
    }
    

    Ich würde nicht exit verwenden in C++, da exit keine Destruktoren aufruft. Wirf lieber eine Exception.

    Grüssli



  • ah danke leutz...probiers mal aus....

    edit: Funktioniert danke....

    hab jetzt och ne frage...also ich benutzte ein Array z.b. val[20] und benutze diese einzehlnt also so val[0],val[1] und habe dies als switch anweisung ...wenn val1 = 0 dann val[0]...und dann val1++
    wenn val1 = 1...dann val[1]...

    switch (val1) {
    case 0:
    val[0] = 'a'
    break;
    case 1:
    val[1] = 'b'
    break;
    

    und wollte dies auch kürzer gestalten...



  • Der Index kann natürlich auch variabel sein, d.h.:

    val[val1] = 'a' + val1;
    


  • Ich finde eigentlich für solche Auswahl-Zuweisungs-Ausdrücke switch/case echt gut geeignet. Egal ob man es kürzer ausdrücken kann, es ist ziemlich übersichtlich.
    In deinem Fall wäre

    val[val1] = "ab"[val1];
    

    Sehr kurz.



  • ah gute idee danke
    probiere es gleich mal aus...

    edit:
    das Problem mit switch case ist das das array [20] und die anweisung ein wenig groß wird 😮... daher suchte ich eien alternative aber so richig hunbekommen tu ichs net...

    naja danke euch allen habs jetzt...


Anmelden zum Antworten