
Wie auch andere Programmiersprachen führt Visual Basic die Programmzeilen reihenweise vom Beginn des Programms an aus. Häufig jedoch möchte ein Programmierer, daß nicht immer alle Zeilen ausgeführt werden, wenn das Programm läuft. Anstelle hierfür unzählige separate Programme zu schreiben, können Verzweigungs- und Wiederholungs-Befehle verwendet werden.
Verzweigungs-Befehle werden verwendet, um festzulegen, wann ein kleinerer Codeabschnitt ausgeführt werden soll und wann nicht. Ein Beispiel hierfür ist der If-Befehl. Wenn etwas wahr ist, wird der Code ausgeführt, ansonsten nicht, und das Programm setzt weiter unten fort.
Wiederholungs-Befehle sind nützlich für kleinere Code-Abschnitte, die mehrfach durchlaufen werden. Wenn ein Programmierer 200 Zeilen aus einer Datei einlesen muß, kann er 200 Programmzeilen dafür schreiben, oder aber mit einer 'For Next'-Schleife dasselbe mit nur vier Programmzeilen durchführen!
Einzelzeilen-If (Beispiel):
If a > 10 Then Label1.Caption = "A ist größer als 10"
Mehrfachzeilen-If (Beispiel):
If a > 10 And b < 21 Then
Label1.Caption = "A ist größer als 10"
Label2.Caption = "B ist kleiner als 21"
End If
Der mehrzeilige If-Befehl benötigt die zusätzliche 'End If'-Anweisung, um das Ende des If-Blocks zu kennzeichnen.
If und Else (Beispiel):
If a > 10 And b < 21 Then
Label1.Caption = "A ist größer als 10"
Label2.Caption = "B ist kleiner als 21"
Else
Label1.Caption = "A ist kleiner oder gleich 10 ODER"
Label2.Caption = "B ist größer oder gleich 21"
End If
Wenn eine der beiden Bedingungen falsch ist, wird das Programm den Code im 'Else'-Abschnitt ausführen.
Der 'ElseIf'-Befehl kann verwendet werden um eine weitere Bedingung zu testen, falls die erste nicht zutrifft.
If und ElseIf (Beispiel):
If a > 10 And b < 21 Then
lblFirst.Caption = "A ist größer als 10"
lblSecond.Caption = "B ist kleiner als 21"
ElseIf c = 8
lblFirst.Caption = "A ist kleiner oder gleich 10 ODER"
lblSecond.Caption = "B ist größer oder gleich 21"
lblThird.Caption = "wie auch immer, C ist gleich 8"
Else
lblFirst.Caption = _
"A ist kleiner oder gleich 10 ODER B ist größer oder gleich 21, UND C ist ungleich 8."
End If
Werden mehrere Verzweigungsmöglichkeiten benötigt, kann der 'Select Case'-Befehl verwendet werden.
Case (Beispiel):
Select Case AktuellerTag
Case 1
TagName = "Sonntag"
Case 2
TagName = "Montag"
...
Case 7
TagName = "Samstag"
End Select
Die 'End Select'-Anweisung definiert das Ende des Case-Blocks. Um einen Fall bearbeiten zu können, auf den keine der Case-Bedingungen zugetroffen hat, verwendet man als letzten Case die 'Case Else'-Anweisung.
...
Case 7
TagName = "Samstag"
Case Else
MsgBox "Ausdruck ist kein Tag, es gibt nur 7 Wochentage."
End Select
Die folgenden Befehle können verwedet werden, um einen Code-Abschnitt mehrfach auszuführen.
Do Loop (Syntax):
Do While Bedingung
Anweisungen
Loop
Do Loop (Beispiel):
Heute = 1
Do While Heute <= 7
Heute = Heute + 1
Loop
Eine ähnliche Schleife wie die 'Do While'-Schleife ist die 'Loop While'-Schleife. Der Hauptunterschied liegt darin, daß die Do While-Schleife am Anfang die Bedingung für das Ausführen der Schleife testet, während die Loop While-Schleife dies am Ende jeder Schleifenausführung tut. Was in der Praxis soviel bedeutet, als daß die Do While-Schleife unter Umständen nie ausgeführt wird, während die Loop While-Schleife immer zumindestens einmal durchlaufen wird.
Loop While (Syntax):
Do
Anweisungen
Loop While Bedingung
Loop While (Beispiel):
Zählwerk = 0
Do
Zählwerk = Zählwerk + 1
Loop While Zählwerk < 100 ' z.B. Nicht kochen lassen.
For-Schleifen sind dann nützlich, wenn der Programmierer weiß, wie oft sie durchlaufen werden sollen.
For Loop (Syntax):
For Zählwerk = Anfang To Ende [Step Zuwachs]
Anweisungen
Next [Zählwerk]
For Loop (Beispiel):
For AktuellerTag = 1 To 365
lblTag.Caption = "Tag = " & Str$(AktuellerTag)
Next AktuellerTag
Verschachtelte Schleifen (Beispiel):
For AktuelleWoche = 1 To 52
For AktuellerTag = 1 To 7
...
Next AktuellerTag
Next AktuelleWoche
Der Step-Teil der For-Schleife wird verwendet, um VB mitzuteilen, wie die Schleifenvariable verändert werden soll. Tippen Sie den folgenden Code ein und beachten Sie, welche Werte ausgegeben werden:
For Test = 1 To 10 Step 2
Print Test
Next Test
Wie oft wurde der Code innerhalb der Schleife ausgeführt?
Versuchen Sie es auch mit anderen Werten als der 2.
Und was passiert bei folgendem Beispiel?
For Test = 12 To 4 Step -3
Print Test
Next Test
Und nun?
For Test = 1 To 10 Step 0
Print Test
Next Test
Menu