Quick Basic: Select-Case

SELECT-CASE-Anweisung

Bearbeiten

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, 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