Quick Basic: Select-Case
Aus Wikibooks
[Bearbeiten] SELECT-CASE-Anweisung
Im 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. 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