Quick Basic: Select-Case
SELECT-CASE-Anweisung
BearbeitenIm letzten Kapitel haben wir gelernt wie man Abfragen durchführt, dass das Programm entsprechend der Eingabe des Benutzers handeln kann. Bei komplexeren Abfragen bietet sich die SELECT-CASE-Anweisung an.
Die Syntax lautet:
SELECT CASE Testausdruck CASE Ausdrucksliste1 Anweisungen CASE Ausdrucksliste2 Anweisungen . . . CASE ELSE Anweisungen END SELECT
Der Testausdruck kann eine beliebige Zahl oder Zeichenkette sein. Dieser wird dann der Reihe nach mit den Ausdrücken Ausdrucksliste1, Ausdrucksliste2, u. s. w. verglichen, wobei das Vergleichen beim ersten zutreffenden Ausdruck beendet wird. Diese Ausdrücke können eine der folgenden drei Formen haben
- Element1 [, Element2 ...]
- Element1 TO Element2
- IS Vergleichsoperator Element
Vergleichsoperator ist ein beliebiger Verleichsoperator (<, <=, >, >=, <>, =). Mehr dazu im Kapitel Operatoren.
So, das war jetzt erstmal genug Theorie. Greifen wir noch einmal auf das letzte Beispiel des vorigen Kapitels zurück. Dieses wollen wir jetzt mithilfe der SELECT-CASE-Anweisung realisieren:
Das letzte Beispiel:
DIM zahl AS INTEGER
INPUT "Gib eine Zahl von 1 bis 3 ein: ", zahl
IF zahl = 1 THEN
PRINT "eins"
ELSEIF zahl = 2 THEN
PRINT "zwei"
ELSEIF zahl = 3 THEN
PRINT "drei"
ELSE
PRINT "die Zahl lag nicht zwischen 1 und 3!!"
END IF
|
Jetzt das ganze mit Hilfe der SELECT-CASE-Anweisung realisiert
DIM zahl AS INTEGER
INPUT "Gib eine Zahl von 1 bis 3 ein: ", zahl
SELECT CASE zahl
CASE 1
PRINT "eins"
CASE 2
PRINT "zwei"
CASE 3
PRINT "drei"
CASE ELSE
PRINT "die Zahl lag nicht zwischen 1 und 3!!"
END SELECT
|
Nun wollen wir uns an einem weiteren Beispiel die Möglichkeiten ansehen, wie die Ausdruckslisten aussehen können:
DIM zahl AS INTEGER
INPUT "Gib eine Zahl von 0 bis 10 ein: ", zahl
SELECT CASE zahl
CASE 0, 1, 2, 3, 4 'Auflistung von Elementen
PRINT "Die Zahl ist im Bereich von 0 bis 4"
CASE 5 TO 10 'Bereich von Elementen
PRINT "Die Zahl ist im Bereich von 5 bis 10."
CASE IS > 10 'Vergleich mit einem Element
PRINT "die Zahl ist größer als 10."
CASE ELSE 'was übrig bleibt
PRINT "die Zahl ist negativ"
END SELECT