Wilkommen zum *Teil2*
Meiner Scripting Tutorials =)
Viel Spaß
f-Then-Else-Anweisung
Genau wie Menschen müssen Computer die Möglichkeit haben, Entscheidungen zu treffen, auf Grund von bekannten (oder auch zufälligen) Kriterien.
In VB verwendet man If ... Then Konstruktionen für eben solche Operationen, die von Bedingungen abhängen.
Sagen wir mal ein Festplatten-Bereinigungsprogramm sollte nur Sonntags gestartet werden, dann würde man folgende Konstruktion verwenden:
Meist reichen solch einfache If-Bedingungen nicht aus; daher hat man die Möglichkeit, mehrere Kriterien zu kombinieren mit z.B. den Operatoren AND (=und) oder OR (=oder).Quote:
If WeekDay(Now) = vbSunday Then
Shell "scandskw.exe"
End If
Achtung! Wichtig sind die Klammern um die einzelnen Bedingungen!
Jetzt wird Scandisk also Sonntags ODER Mittwochs gestartet. Warum kann man nicht AND verwenden?Quote:
If (WeekDay(Now) = vbSunday) Or (WeekDay(Now) = vbWednesday) Then
Shell "scandskw.exe"
End If
Würde man beides mit AND verknüpfen, müßte heute (also der Weekday(Now)) SOWOHL Sonntag als AUCH Mittwoch sein.
Nehmen wir einmal an, Freitags sollte noch Defrag (Festplatten-Defragmentierung) gestartet werden; der Code sieht dann folgendermaßen aus:
Wenn die IF-Anweisung nicht erfüllt ist, wird die ElseIf-Anweisung überprüft; sind beide nicht erfüllt (TRUE), dann tritt die Else-Anweisung in Kraft:Quote:
If (WeekDay(Now) = vbSunday) Or (WeekDay(Now) = vbWednesday) Then
Shell "scandskw.exe"
ElseIf Weekday(Now) = vbFriday Then
Shell "defrag.exe"
End If
Wenn also WEDER Sonntag NOCH Mittwoch NOCH Freitag ist (also Mo,Di,Do,Sa) wird Solitär gestartet.Quote:
If (WeekDay(Now) = vbSunday) Or (WeekDay(Now) = vbWednesday) Then
Shell "scandskw.exe"
ElseIf Weekday(Now) = vbFriday Then
Shell "defrag.exe"
Else
Shell "sol.exe"
End If
Alle oben gezeigten If-Blöcke werden durch 'End If' beendet. Dies ist immer dann notwendig, wenn eine If-Konstruktion mehrere Zeilen beansprucht; folgende If-Zeile verlangt kein 'End If':
Quote:
If (Nachname$ = "Müller") And (Vorname$ = "Werner") Then MsgBox "Werner Müller ist bereits im Datenbestand erfasst!"
Zusammenfassung:
+ Die If-Then Anweisung macht Operationen von Bedingungen abhängig
+ Nach der If-Anweisung wird eine eventuell vorhandene ElseIf-Anweisung abgearbeitet
+ Sind beide unwahr (FALSE), so tritt eine eventuell vorhandene Else-Anweisung ein
+ If-Blöcke werden mit 'End If' abgeschlossen, sofern sie mehrere Zeilen umfassen
+ Durch logische Operatoren (AND/OR/XOR/NOT) kann man Bedingungen verknüpfen
Graaz
knollo14