Quick Basic: If-Else
Bedingungen mit IF-ELSE
BearbeitenWir haben gelernt, wie wir etwas in eine Variable speichern können und wie es auf dem Bildschirm ausgegeben wird. Auch haben wir uns angesehen, wie wir mathematische Operatoren verwenden können. In diesem Abschnitt wollen wir uns so genannte Bedingungen ansehen, ein wichtiger Bestandteil einer jeden Programmiersprache. Wir werden uns nun die Funktionsweise von IF und ELSE/ELSEIF näher ansehen.
Kurz etwas zur Theorie: Bedingungen sind nötig, um auf bestimmte Ereignisse reagieren zu können. Ein Beispiel wäre, wenn man ein Zahlenratespiel programmiert. Man würde hierfür Bedingungen benötigen für die folgenden Ereignisse:
- Die Eingabezahl ist größer als die Zufallszahl
- Die Eingabezahl ist kleiner als die Zufallszahl
- Die Eingabezahl ist die Zufallszahl
Normaler IF-Block
BearbeitenSyntax:
IF Bedingung THEN Mache dies und das END IF
Übersetzung:
WENN Bedingung DANN Mache dies und das
Beispiel:
DIM Eingabe AS INTEGER 'Variable als Ganzzahl initialisieren
INPUT "Eingabe: ", Eingabe 'Wert in Variable schreiben
IF Eingabe = 10 THEN 'WENN Eingabezahl IST 10 DANN
PRINT "Eingabezahl ist 10"
END IF
Die erste Zeile deklariert eine Ganzzahlvariable. Die nächste Zeile speichert die Benutzereingabe in die Variable. Jetzt kommt die Bedingung: WENN die Eingabezahl 10 IST, DANN gib eine Meldung aus. Die letzte Zeile zeigt den Abschluss des Bedingungsblocks.
Als Ausgabe würde man zum Beispiel folgendes erhalten:
Eingabe: 10 Eingabezahl ist 10
IF-ELSE-Block
BearbeitenWir können nun auf das Ereignis Eingabezahl ist 10 reagieren. Doch was ist, wenn wir auf das Ereignis Eingabezahl ist ungleich 10 reagieren wollen? Wir benötigen dafür einen ELSE-Block.
Syntax:
IF Bedingung THEN Mache dies und das, falls wahr ELSE Mache dies und das, falls falsch END IF
Übersetzung:
WENN Bedingung DANN Mache dies und das, falls wahr SONST Mache dies und das, falls falsch
Wir verdeutlichen das ganze mit einem Beispiel:
DIM Eingabe AS INTEGER 'Variable als Ganzzahl initialisieren
INPUT "Eingabe: ", Eingabe 'Wert in Variable schreiben
IF Eingabe = 10 THEN 'WENN Eingabezahl IST 10 DANN
PRINT "Eingabezahl ist 10"
ELSE 'SONST
PRINT "Eingabezahl ist nicht 10"
END IF
Die erste Zeile deklariert wieder eine Ganzzahlvariable. In der nächsten Zeile wird die Benutzereingabe in die Variable Eingabe gespeichert. Jetzt kommt wieder eine Bedingung: WENN die Eingabezahl 10 IST, DANN gib Eingabezahl ist 10 aus, SONST gib Eingabezahl ist nicht 10 aus.
Als Ausgabe hätte man dann zum Beispiel:
Zahl eingeben: 5 Eingabezahl ist nicht 10
IF-ELSEIF-Block
BearbeitenNun kommen wir zu letzten IF-Möglichkeit: ELSEIF.
Syntax:
IF Bedingung THEN Mache dies und das ELSEIF Bedingung THEN Mache dies und das END IF
Übersetzung:
WENN Bedingung DANN Mache dies und das SONST WENN Bedingung DANN Mache dies und das
Wie wir sehen, können wir mit ELSEIF eine weitere fixe Bedingung im IF-Block festlegen.
Zur besseren Verständlichkeit wieder ein Beispiel:
DIM Eingabe AS INTEGER 'Variable als Ganzzahl initialisieren
INPUT "Eingabe: ", Eingabe 'Wert in Variable schreiben
IF Eingabe = 10 THEN 'WENN Eingabezahl IST 10 DANN
PRINT "Eingabezahl ist 10"
ELSEIF Eingabe = 5 THEN 'SONST WENN Eingabezahl IST 5 DANN
PRINT "Eingabezahl ist 5"
END IF
Die erste Zeile deklariert die bekannte Ganzzahlvariable. In der nächsten Zeile wird die Benutzereingabe in die Variable Eingabe gespeichert. Jetzt kommt unsere Bedingung: WENN die Eingabezahl 10 IST, DANN gib Eingabezahl ist 10 aus, SONST WENN die Eingabezahl 5 IST, gib Eingabezahl ist 5 aus.
Als Ausgabe hätte man dann zum Beispiel:
Zahl eingeben: 5 Eingabezahl ist 5
Wie wir sehen sind solche Bedingungen recht einfach zu realisieren. Es können natürlich auch Strings verwendet werden, es ist also auch eine Abfrage wie WENN Eingabe IST "J" DANN möglich.
IF-ELSEIF-ELSE-Block
BearbeitenNatürlich können auch mehrere Blöcke "kombiniert" werden um komplexere Abfragen durchzuführen.
Syntax:
IF Bedingung1 THEN Anweisungen ELSEIF Bedingung2 THEN Anweisungen ELSEIF Bedingung3 THEN Anweisungen . . . ELSE Anweisungen END IF
Hier werden der Reihe nach alle Bedingungen überprüft. Sobald eine davon wahr ist, werden die dazugehörigen Anweisungen ausgeführt und anschließend ans Ende des IF-Blocks gesprungen. Sind jedoch alle Bedingungen falsch, so werden die Anweisungen des ELSE-Abschnitts (sofern vorhanden) ausgeführt.
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
Übungen
Bearbeiten- Schreibe ein Programm, welches zwei Zahlen vom Benutzer verlangt, und bei den Zahlen 1 und 15 eine Meldung ausgibt.