[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); }
-
if(val < 1 || val > 3) { std::cout << "Fehler"; // mach was. } else { val1 = val; }Ich würde nicht
exitverwenden in C++, daexitkeine 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äreval[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...