Programmverwaltung


[ If | Case Select | Do While | Loop While | For...Next ]

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!


Verzweigungs-Befehle


If

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

Case Select

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


Wiederholungs-Strukturen

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