Einige Möglichkeiten wurden ja schon genannt.
- viele IFs
- umrechnen in einen Index, wozu auch die Enumeration gehört
Das kann man übrigens auch für Strings und andere nicht ordinale Typen verwenden, indem man z.B. über einen Hash oder z.B.
IndexStr geht.
Und dann kann man die Werte auch noch einfach
- zusammenrechnen
Delphi-Quellcode:
case a*100 + b of
0000: Anweisung1;
0001..0009: Anweisung2;
0010: Anweisung3;
0100, 0200, 0300, 0400: Anweisung4;
0110, 0210, 0310, 0410: Anweisung5;
0500: Anweisung6;
else ;
end;
Aber das geht meistens am Besten, wenn ein Wert fortlaufend ist und der Andere möglichst immer jeweils nur zu einem oder wenigen ersten Wert(en) gehört (siehe Anweisung 4 und 5), da man Bereiche nur für einen Wert definieren kann.