Kontrollstrukturen

<< Click to Display Table of Contents >>

Kontrollstrukturen

Kontrollstrukturen dienen dazu, abhängig von einer Bedingung Anweisungen auszuführen, zu überspringen oder zu wiederholen. Es gibt folgende Varianten:

Goto-Verzweigung

Goto Label1

.

.

.

Label1:

Die Goto-Anweisung veranlasst einen unbedingten Sprung auf eine Sprungmarke – in obigem Beispiel die Sprungmarke "Label1".

Gosub-Verzweigung

Gosub Label1

.

.

.

Label1:

 Anweisung(en)...

Return

Auch bei der Gosub-Anweisung muss ein Sprungziel angegeben werden. Der Unterschied zur Goto-Anweisung liegt darin, dass die Gosub-Anweisung zur ursprünglichen Programmstelle zurückkehrt, sobald sie auf eine Return-Anweisung trifft.

Do-Schleifen

Mit einer Do Loop-Schleife kann eine Gruppe von Anweisungen mehrere Male ausgeführt werden. Es gibt folgende Varianten:

Do While|Until Bedingung

 Anweisung(en)...

 [Exit Do]

 Anweisung(en)...

Loop

Oder:

Do

 Anweisung(en)...

Loop While|Until Bedingung

Der Unterschied:

Do While und Do Until prüfen die Bedingung, bevor sie mit der Abarbeitung der Anweisungen innerhalb der Schleife beginnen. Diese werden also nur dann ausgeführt, wenn die Bedingung zutrifft.

Bei Do ... Loop While und Do ... Loop Until hingegen findet die Prüfung erst statt, wenn die Schleife bereits zum ersten Mal durchlaufen ist. Hier werden die Anweisungen innerhalb der Schleife also in jedem Falle mindestens ein Mal abgearbeitet.

While-Schleifen

While ... Wend-Schleifen ähneln Do While ... Loop-Schleifen. Auch hier wird die Bedingung vor dem ersten Abarbeiten der Anweisungen innerhalb der Schleife geprüft.

While Bedingung

 Anweisung(en)...

Wend

For ... Next-Schleifen

Eine For Next-Schleife wiederholt die darin enthaltenen Anweisungen anhand eines Zählers genau n mal. Bei jedem Durchlaufen der Schleife wird dieser Zähler um die angegebene Schrittweite herauf- beziehungsweise herabgesetzt. Wenn Sie keine Schrittweite angegeben, wird als Schrittweite 1 verwendet.

For Zähler = Startwert To Zielwert [Step Schrittweite]

 Anweisung(en)...

Next

If-Verzweigungen

Bei einem If Then-Block werden Anweisungen nur dann ausgeführt, wenn die angegebene Bedingung wahr ist. Diese Bedingung muss ein Ausdruck sein, dessen Ergebnis True oder False ist (zum Beispiel If a<b Then).

Ein If ... Then-Block kann eine oder mehrere Zeilen umfassen. Wenn er sich über mehrere Zeilen erstreckt, muss er mit einer End If-Anweisung abgeschlossen werden.

If Bedingung Then Anweisung(en)... ' Einzeilige Syntax

Oder:

If Bedingung Then ' Mehrzeilige Syntax

 Anweisung(en)...

End If

Eine Variante hiervon ist die If ... Then ... Else-Anweisung. Die Anweisungen nach Else werden ausgeführt, wenn die Bedingung nicht zutrifft.

If Bedingung Then

 Anweisung(en)...

Else

 Anweisung(en)...

End If

Weitere Verzweigungen könnten mit zusätzlichen If ... Then ... ElseIf-Anweisungen erreicht werden. Dies führt jedoch leicht zu unübersichtlichem Code, weshalb man hier die Select Case-Anweisung vorziehen sollte (siehe unten).

If Bedingung Then

 Anweisung(en)...

ElseIf Bedingung Then

 Anweisung(en)...

Else

 Anweisung(en)...

End If

Select Case-Verzweigungen

Bei der Select Case-Anweisung wird eine Variable auf verschiedene Werte überprüft.

Select Case Variable

 Case Wert1

         Anweisung(en)...

 Case Wert2

         Anweisung(en)...

 Case Wert3

         Anweisung(en)...

 [Case Else

         Anweisung(en)...]

End Select

Trägt die Variable den Inhalt "Wert1", werden die Anweisungen bei Case Wert1 abgearbeitet etc. Hat sie keinen der angegebenen Werte, wird zu den Anweisungen bei Case Else verzweigt (sofern vorhanden, ansonsten wird die Struktur einfach verlassen).