Bedingungen mit IF-ELSE

Bearbeiten

Wir 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

Bearbeiten

Syntax:

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

Bearbeiten

Wir 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

Bearbeiten

Nun 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

Bearbeiten

Natü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.