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