Entscheidung, Vergleich und Zuweisung ◦ Zusammenfassung ◦ ?

Jede Programmiersprache enthält mindestens die folgenden Elemente:

- Sequenz (ein Folge mehrerer Anweisungen)
- Wiederholung (zum Beispiel Do While ... Loop)
- Entscheidung (Auswahl).

### Entscheidung

Das folgende Sprichwort enthält eine Entscheidung, die immer gilt:

> "Kräht der Hahn auf dem Mist, so ändert sich das Wetter oder es bleibt, wie es ist".

In der Syntax von VBA lautet das Sprichwort:

> If Hahn kräht auf dem Mist Then
> Wetter ändert sich
> Else
> Wetter bleibt, wie es ist
> End If

Wenn die Bedingung zwischen If und Then zutrifft, dann wählt das Programm den Then-Zweig, andernfalls führt es den Else-Zweig aus. Nach End If fährt das Programm mit dem nächsten Befehl nach End If weiter:

> If <Bedingung> Then
> <Dann-Anweisungen>
> Else
> <Sonst-Anweisungen>
> End If
> <nächster Befehl nach If>

Der Else-Zweig kann weggelassen werden, falls das Programm nach der erfolglosen Prüfung der Auswahlbedingung mit dem nächsten Befehl weiterfahren soll, statt den Else-Zweig auszuführen. End If kann weggelassen werden, falls <Dann-Anweisungen> (und allenfalls <Sonst-Anweisungen>) aus einer einzigen Anweisung besteht und die ganze Entscheidungsanweisung auf einer Programmzeile Platz findet. Die folgenden Beispiele bedeuten beide dasselbe, ihre Syntax ist aber verschieden:

>     If Ausleihehäufigkeit(i) > Maximum Then
>       Maximum = Ausleihehäufigkeit(i)
>     End If

>     If Ausleihehäufigkeit(i) > Maximum Then Maximum = Ausleihehäufigkeit(i)

### Entscheidung und Wiederholung

Sowohl die Entscheidungs- als auch die Wiederholungsanweisung prüfen eine Bedingung, bevor sie den Then- oder Else-Zweig wählen bzw. die Anweisungen in der Schleife wiederholen. Die Wiederholungsanweisung muss die Variablen der Wiederholungsbedingung in jedem Durchgang ändern, damit die Wiederholung abbricht. Andernfalls kommt es zu einer Endlosschleife: In der folgenden Variante unseres Summenprogramms entfernt sich zum Beispiel die Wiederholungsvariable Zahl mit jedem Durchgang weiter von der Endbedingung <= 1000 und führt deshalb zu einer Endlosschleife:

>     Zahl = 1
>     Summe = 0
>     Do While Zahl <= 1000
>       Summe = Summe + Zahl
>       Zahl = Zahl - 1 				‘ Zählfehler!
>     Loop

### Vergleich und Zuweisung

Die Bedingung einer Entscheidung oder Wiederholung enthält oft Vergleichsoperatoren (=, <, >, <=, >= oder <>):

>     If Name = “Fridolin” Then
>     ...

>     Do While Name = “Fridolin”
>     ...

Leider verwenden viele Programmiersprachen das Symbol = nicht nur für Vergleiche, sondern auch für eine Zuweisung:

>     Name = “Fridolin”

Der Vergleich lässt die durch = verbundenen Operanden unverändert (zum Beispiel in If Name = “Fridolin" Then ...). Die Zuweisung ändert hingegen den Inhalt der linken Seite.

WENN-Funktion in Excel