JavaScript: If-Bedingungen und Switch-Abfragen
Abfragen dienen dazu, den Ablauf eines Programms bzw. einer Funktion zu steuern. Sie funktionieren alle nach dem gleichen Muster: es wird eine Bedingung gestellt und je nach dem wie diese Ausgewertet werden kann (wahr oder falsch) wird etwas ausgeführt oder eben nicht.if-Abfrage
Dieif
-Abfrage ist die einfachste Form einer Abfrage. Sie besteht aus zwei Teilen: einer Bedingung und einer Anweisung oder einem Anweisungsblock. Die Bedingung wird hinter dem Wort if
in zwei runde Klammern notiert. Die Anweisung bzw. der Anweisungsblock folgt nach der Bedingung. Ist die Aussage wahr (true
), wird die Anweisung ausgeführt - ist sie falsch (false
) wird sie nicht ausgeführt. Wörtlich würde solcheine Abfrage so lauten: Wenn [Bedingung] dann mache [Anweisung]. Beispiel:
a = 2;
if(a == 1)
alert('A ist 1');
if(a < 10 && a > 1)
{
a++;
alert('A ist '+a);
}
a
mit dem Wert 2
gibt. Die erste Abfrage würde dann mit false
bewertet (da a
ungleich 1
also falsch ist) und die anschließende Funktion somit nicht ausgegeben werden. Die zweite Bedingung ist etwas Komplexer und würde mit true
bewertet (da a
kleiner als 10
und größer als 1
ist) und somit auch der anschließende Anweisungsblock ausgeführt werden.Bitte beachten Sie, dass Variablen oder Objekte mit dem Wert
undefined
oder null
mit false
ausgewertet werden. Ein Objekt das nicht existiert ist demnach false
.
if-else-Abfrage
Eineif-else
-Abfrage ist quasi wie eine doppelte if
-Abfrage zu sehen, bei der die zweite Bedingung umgedreht wird. Solcheine Abfrage besteht aus einer normalen if
-Abfrage der eine alternative Anweisung bzw. ein alternativer Anweisungsblock angehängt wird. Diese/r wird dann ausgeführt, wenn die Bedingung der if
-Abfrage mit false
(also falsch) bewertet wird.Der alternative Teil wird vom Teil der
if
-Abfrage durch das Wort else
getrennt. Eine wörtliche Wiedergabe solcheiner if-else
-Abfrage könnte so lauten: Wenn [Bedingung] dann mache [if-Anweisung], ansonsten mache [else-Anweisung]. Beispiel:
a = 1;
if (a == 2) a++ else a--;
if (a == 1) { a++; a++; } else { a--; a--; };
a
mit dem Wert 1
vorausgesetzt. Die erste Abfrage fragt, ob a
gleich 2
ist und wird mit false
ausgewertet werden. Dies bedeutet, dass nun also nicht die Anweisung des if
-Teils (a++
) ausgeführt wird, sondern die des else
-Teils (a--
). In der zweiten Abfrage ist das gleiche nochmals mit veränderter Bedingung und Anweisungsblöcken statt Anweisungen dargestellt.
? : - Konditionalabfrage
Die Konditionalabfrage ist eine vereinfachet Form derif-else
-Abfrage. Sie besteht nur aus drei Teilen: der Bedingung und zwei Anweisungen bzw. Anweisungsblöcken. Nach der Bedingung muss dabei ein Fragezeichen (?
) und zwischen den zwei Anweisungen bzw. -blöcken ein Doppelpunkt (:
) stehen. Die Funktion ist wie bei einer if-else
-Abfrage: Ist die Bedingung erfüllt, so wird die erste Anweisung ausgeführt - ist sie nicht erfüllt, wird die zweite (also die Anweisung nach dem Doppelpunkt) ausgeführt. Beispiel:
a = 1;
a == 2 ? a++ : a--;
if-else
-Abfrage gleich.
switch-Abfrage
Anstelle mehrererif
- oder if-else
-Abfragen kann eine switch
-Abfrage treten. Sie beinhaltet eine Mehrfachauswahl und kann so direkter reagieren.Eine
switch
-Abfrage beginnt mit dem Wort switch
, welchem in Klammern ein Objekt, eine Variable oder eine Bedingung folgt. Nach diesem Ausdruck werden, innerhalb von geschweiften Klammern, beliebig viele Marken notiert. Jede Marke stellt dabei eine Form bzw. einen Wert des Objekt dar, die/den es annehmen könnte. Eine Marke beginnt immer mit dem Wort case
- danach folgt der Wert. Ein Wert kann fast alles sein - ob Text, Zahl, Objekt oder Typ. Die Marke wird mit einem Doppelpunkt (:
) beendet. Nach dieser Marke folgen dann, die Anweisungen, die ausgeführt werden sollen, wenn der switch
-Ausdruck komplett übereinstimmend (also gleicher Wert und gleicher Typ) mit dem Marken-Ausdruck ist. Beendet wird eine Anweisungsfolge mit dem Wort break
. Zusätzlich können Alternativanweisungen definiert werden. Sie sollten hinter dem letzten break
stehen und beginnen mit dem Wort default
gefolgt von einem Doppelpunkt (:
). Diesem schließen sich die Anweisungen an und brauchen nicht mir einem break
beendet werden.Die Funktionsweise einer solchen Abfrage ist wie folgt: Die
switch
-Abfrage wird von oben nach unten durchlaufen und nach einem passenden Wert durchsucht. Wird ein Wert gefunden, so werden die anschließenden Aufgaben bis zur nächsten break
-Anweisung ausgeführt und die Abfrage beendet. Wird kein passender Wert gefunden, werden - falls vorhanden - die Alternativanweisungen ausgeführt. Danach ist die Abfrage beendet und das Programm wird weiter fort gesetzt. Beispiel:
a = 1;
switch (a)
{
case 1 :
alert('Es ist eine Eins!');
alert('Er ist Klassenbester!');
break;
case 2: case 3: case 4: case 5 :
alert('Es ist keine Eins und keine Sechs!');
break;
case 6 :
alert('Es ist eine Sechs!');
alert('Er ist durchgefallen!'); break;
default:
alert('Falsche Zahl!');
}
a
mit dem Wert 1
vorausgesetzt. Die Abfrage prüft, ob der Wert sowie der Typ der Marken-Ausdrücke mit dem des switch
-Ausdrucks übereinstimmend sind. Im Beispiel werden demnach also die Anweisungen hinter case 1 :
bis zum ersten break
ausgeführt. Danach ist die Abfrage beendet.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Schleifen
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project