Gewusst wie: Ausführen von Anweisungen in Abhängigkeit von einer oder mehreren Bedingungen
Aktualisiert: November 2007
Mit einer If...Then...Else-Anweisung (Visual Basic)-Anweisung können Sie eine bestimmte Anweisung oder einen Block von Anweisungen abhängig vom Boolean-Datentyp (Visual Basic)-Wert einer Bedingung ausführen. Die Bedingung ergibt sich normalerweise durch einen Vergleich zweier Werte. Es kann sich jedoch um einen beliebigen Ausdruck handeln, der zu einem Boolean-Wert (True oder False) ausgewertet wird. Dazu gehören Werte anderer Datentypen, wie z. B. numerische Typen, die in Boolean umgewandelt wurden.
So führen Sie eine oder mehrere Anweisungen aus, wenn eine Bedingung den Wert True hat
Wenn nur eine Anweisung auszuführen ist, verwenden Sie die einzeilige Syntax der If...Then...Else-Konstruktion. Sie benötigen weder die Else-Anweisung noch die End If-Anweisung. Dies wird anhand des folgenden Beispiels veranschaulicht:
Sub fixDate() Dim myDate As Date = #2/13/1973# If myDate < Now Then myDate = Now End Sub
- oder -
Wenn Sie mehrere Codezeilen ausführen möchten, wenn die Bedingung True ist, verwenden Sie die mehrzeilige Syntax, die die End If-Anweisung enthält. Ist kein Code vorhanden, der ausgeführt werden soll, wenn die Bedingung False ist, dann können Sie die Else-Anweisung weglassen. Dies wird anhand des folgenden Beispiels veranschaulicht:
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) End If End Sub
So führen Sie bestimmte Anweisungen aus, wenn eine Bedingung den Wert True hat, und andere Anweisungen, wenn eine Bedingung den Wert False hat
Definieren Sie unter Verwendung einer If...Then...Else-Konstruktion mit einer Else (Visual Basic)-Anweisung zwei Anweisungsblöcke. Visual Basic führt einen Block aus, wenn die Bedingung True ist, und der andere Block wird ausgeführt, wenn die Bedingung False ist. Dies wird anhand des folgenden Beispiels veranschaulicht:
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) Else alertLabel.Forecolor = System.Drawing.Color.Black alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Regular) End If End Sub
So testen Sie zusätzliche Bedingungen, wenn die erste Bedingung den Wert False hat
Verwenden Sie eine If...Then...Else-Konstruktion mit einer oder mehreren ElseIf (Visual Basic)-Anweisungen, um weitere Bedingungen zu testen, wenn die erste Bedingung den Wert False hat. Beispielsweise berechnet die folgende Function-Prozedur einen auf der Leistungsbewertung basierenden Gehaltsbonus. Der Anweisungsblock nach der Else-Anweisung wird nur dann ausgeführt, wenn die Bedingungen in der If-Anweisung und der ElseIf-Anweisung zu False ausgewertet werden.
Function bonus(ByVal performance As Integer, ByVal salary As Decimal) _ As Decimal If performance = 1 Then Return salary * 0.1 ElseIf performance = 2 Then Return salary * 0.09 ElseIf performance = 3 Then Return salary * 0.07 Else Return 0 End If End Function
Visual Basic testet die Bedingungen in der Reihenfolge, in der sie in den If...Then...Else-Anweisungen angegeben sind. Wenn eine Bedingung mit dem Wert True oder eine Else-Anweisung folgt, wird der entsprechende Anwendungsblock ausgeführt. Anschließend wird die Steuerung an die Anweisung übergeben, die auf die End If-Anweisung folgt.
Sie können eine beliebige Anzahl von ElseIf-Anweisungen oder auch keine einzige verwenden. Sie können eine Else-Anweisung hinzufügen oder auslassen, ungeachtet dessen, ob ElseIf-Anweisungen verwendet werden.
Siehe auch
Aufgaben
Gewusst wie: Übertragen der Steuerung aus einer Kontrollstruktur
Gewusst wie: Prüfen auf mehrere Werte eines Ausdrucks
Gewusst wie: Kontrolliertes Reagieren auf Fehler
Konzepte
Geschachtelte Steuerungsstrukturen