VBScript: Abfragen
Abfragen gehören zu den klassischen Mitteln der Ablaufsteuerung. Mit Ihnen werden Entscheidungen getroffen durch die der Programmablauf variiert wird.If-Abfrage
Die einfachste Form der Abfragen ist die If-Abfrage. Hierbei wird danach entschieden ob ein bestimmter Fall eingetreten ist und entsprechend ein Anweisungszweig ausgeführt oder eben nicht ausgeführt. Die If-Abfrage beginnt mit dem Wortif
gefolgt von der Bedingung. Nach der Bedingung folgt das Wort then
sowie anschließend die auszuführenden Anweisungen. Die Abfrage endet mit den Worten end if
. Die Funktionsweise ist ähnlich leicht erklärt: Gelangt der Interpreter an eine Stelle an der eine Abfrage steht, wird zunächst die Bedingung ausgewertet. Ist ihr Resultat true
führt der Interpreter den Anweisungsteil zwischen then
und end if
aus und fährt dann mit den Anweisungen nach end if
weiter. Ergibt die Auswertung der Bedingung false
, wird gleich mit den Anweisungen nach end if
fortgefahren - alle Anweisungen dazwischen werden übersprungen. Beispiel:
a = 3
if a = 3 then
a = 9
end if
a
mit 3 belegt. Die Abfrage prüft nun ob a
den Wert 3 hat. Da das wahr (true
) ist, wird der Teil danach ausgewertet und a
auf 9 gesetzt.
If-else-Abfrage
Etwas komplexer wird es bei der If-else-Abfrage. Sie Ähnelt soweit der If-Abfrage, allerdings mit dem Unterschied, dass ein alternativer Anweisungszweig geschaffen wird. Der Alternative Anweisungszweig wird dabei direkt in die If-Abfrage zwischenthen
und end if
durch das Wort else
hinein notiert. Der If-Bereich endet dann mit dem Wort else
und der else
-Bereich endet mit end if
. Der Alternative Bereich wird vom Interpreter immer dann ausgeführt, wenn die Bedingung der If-Abfrage mit
false
ausgewertet wurde. Beispiel:
a = 3
if a = 4 then
a = 9
else
a = 6
end if
a
mit 3 belegt. Die Abfrage prüft nun, ob a
den Wert 4 hat. Da dies nicht der Fall ist (false
), fährt der Interpreter mit dem else
-Zweig fort und setzt a
gleich 6. Anschließend ist die Abfrage wiederum beendet und alle nachfolgenden Anweisungen würden bearbeitet werden.
If-elseif-Abfrage
Noch einen Schritt weiter geht die If-elseif-Abfrage. Sie kombiniert einenelse
-Bereich mit einer weiteren Bedingung und schafft damit einen quasi bedingten Alternativbereich. Zur Notation wird einfach ein else
-Bereich mit einer if-Abfrage kombiniert: Man notiert innerhalb des if
-Bereichs das Wort elseif
gefolgt von der Bedingung und dem Wort then
. Prinzipiell können dann beliebig viele
elseif
-Bereiche folgen sowie - zum Abschluss - ein else
-Bereich. Beispiel:
a = 3
if a = 1 then
a = 9
elseif a = 2 then
a = 12
elseif a = 3 then
a = 15
else
a = 18
end if
a
gleich mehrmals geprüft. Als erstes prüft der Interpreter ob a
gleich 1 ist. Da dies nicht der Fall ist springt er zur nächsten Bedingung und prüft diese. Da a
auch nicht gleich 2 ist wird wiederum zur nächsten Bedingung gesprungen. Da diese nun mit true
ausgewertet werden kann, führt der Interpreter alle Anweisungen dieses Bereichs aus (setzt also a
gleich 15) und beendet die Abfrage. Ist die Abfrage beendet würden alle nachfolgenden Anweisungen bearbeitet werden. Bitte beachten Sie: Würde schon die erste oder zweite Bedingung mit
true
ausgewertet werden können, würde der Interpreter schon dort den entsprechenden Bereich ausführen und keine weiteren Bedingungen auswerten, sondern schon bei der nächsten Bedingung die Abfrage beenden.
Verschachtelung von Abfragen
Um den Programmablauf noch besser steuern zu können, können Bedingungen natürlich auch verschachtelt werden. In vielen Fällen kann man diese Verschachtelung allerdings auch durch den richtigen Einsatz von Operatoren ersparen. Beispiel:' Lange Variante:
a = 3 : b = 4 : c = 0
if a = 0 then
if b > 0 then
c = 1
else
c = 2
end if
else
if b > 0 then
c = 3
else
c = 4
end if
end if
' kurze Variante
a = 3 : b = 4 : c = 0
if a = 0 and b > 0 then
c = 1
elseif a = 0 then
c = 2
elseif b > 0 then
c = 3
else
c = 4
end if
Select-Case-Abfrage
Sobald mehrere mögliche Ergebnisse einer Bedingung entstehen können, wird im Allgemeinen eine Select-Case-Abfrage verwendet. Sie funktioniert in etwa wie mehrere If-Abfragen nur mit dem Unterschied, dass man dabei weniger schreiben muss. Schauen wir sie uns einfach mal an:Steuerklasse = 4
Select Case Steuerklasse
Case 1
Steuern = "5 %"
Case 2
Steuern = "15 %"
Case 3 , 4
Steuern = "20 %"
Case Else
Steuern = "25 %"
End Select
Steuerklasse
erzeugt, die den Wert 4 erhält. Anschließend folgt die Select-Case-Abfrage. Sie beginnt mit den beiden Worten select case
gefolgt von der Variablen, die ausgewertet werden soll. Anschließend können nun beliebig viele Case
-Bereiche folgen. Diese werden jeweils mit dem Wort case
gefolgt von einem oder mehreren Werten eingeleitet. Nach dem/den Wert/en folgen die Anweisungen, die ausgeführt werden sollen, wenn Variablenwert und Case
-Wert übereinstimmen. Als letztes kann optional ein Else-Case
folgen. Dieser wird dann ausgeführt, wenn keiner der vorhergehenden Case
-Werte übereinstimmend war. Letztendlich schließt die Abfrage mit den Worten end select
.Bei der Abfrage des Beispiels würde der Interpreter entsprechend zuerst den aktuellen Wert von
Steuerklasse
prüfen. Anschließend wird der Case
-Bereich heraus gesucht, der übereinstimmend ist - in unserem Fall der dritte mit dem Wert 3 und 4. Somit wird die Variable Steuern
auf "20 %" gesetzt und die Abfrage ist beendet. Sollte Steuerklasse
keinen der Werte 1, 2, 3 oder 4 haben, würde der Else-Case
ausgeführt werden.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Operatoren
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project