Möchten wir eine JavaScript Anweisung nur unter bestimmten Umständen
ausführen, so können wir das Schlüsselwort if
verwenden. Die Anweisung nach dem if
wird nur dann ausgeführt,
wenn der dem if
übergebene Parameter den Wert true
ergibt.
<html><body><p> <script type="text/javascript"> var value1 = 4; if (value1 > 2) document.write("Greater 2"); </script> </p></body></html>
Das obige Script führt dazu, dass im zugehörigen Dokument "Greater 2" ausgegeben wird.
Möchten wir bei true
mehrere Anweisungen ausführen, so
können wir diese mit geschweiften Klammern zu einer Blockanweisung
zusammenführen.
<html><body><p> <script type="text/javascript"> var value1 = 4; if (value1 > 2) { document.write("Greater 2; "); document.write("Really greater 2"); } </script> </p></body></html>
Das obige Script führt dazu, dass im zugehörigen Dokument "Greater 2; Really greater 2" ausgegeben wird.
In vielen Fällen möchten wir, sofern der if
-Teil nicht ausgeführt wird, eine
andere Anweisung (bzw. Anweisungsblock) zur Ausführung bringen. Dies erreichen wir mit einer
zur if
-Anweisung gehörenden else
-Anweisung.
<html><body><p> <script type="text/javascript"> var value1 = 1; if (value1 > 2) document.write("Greater 2"); else document.write("Lesser 2"); </script> </p></body></html>
Nachfolgend ein Beispiel mit einer Blockanweisung.
<html><body><p> <script type="text/javascript"> var value1 = 1; if (value1 > 2) document.write("Greater 2"); else { document.write("Lesser 2; "); document.write("Really lesser 2"); } </script> </p></body></html>
Die Entscheidung eine Blockanweisung in den einzelnen Teilen Teilen der if,else Struktur ist optional. Eine Entscheidung in eniem Teil führt nicht zu einer Vorbedingung des anderen Teils. Oft ist es auch sinnvoll eine einzelne Anweisung in geschweiften Klammern zu setzen. Dies ist im Besonderen der Fall, wenn wir lange Anweisungen haben und den Quelltext dadurch übersicher gestalten können.
Verwenden wir einen Ausdruck zur Bestimmung, ob eine Anweisung ausgeführt wird,
so ist Vorsicht geboten. Auch wenn einer Variablen der Wert false
zugewiesen wird, ist das Ergebnis der Zuweisung true
. Die entsprechende
Anweisung wird somit ausgeführt.
var x = 3; if (x = 4) console.log("Part 1"); else console.log("Part 2");
Als Ergebnis wird auf der Console "Part 1" ausgegeben.
Ändern wir das Programm so, dass eine Prüfung auf Gleichheit erfolgt erhalten wir "Part 2" als Ergebnis auf der Konsole.
var x = 3; if (x == 4) console.log("Part 1"); else console.log("Part 2");
JavaScript kennt zwei Arten der Prüfunf auf Gleichheit:
Eine Prüfung mit einem Gleichheitszeichen ist nicht definiert, da die Verwendung eines "einfachen" Gleichheitszeiches für Zuweisungen verwendet wird.
Nachfolgend ein Beispiel, wo zur Prüfung einmal doppelte und ein anderes mal dreifache Gleichheitszeichen herangezogen werden.
var valueA = "1" var valueB = 1.0 if (valueA == valueB) console.log("A: Equals") else console.log("B: Not equals") if (valueA === valueB) console.log("C: Equals") else console.log("D: Not equals")
Die Ausführung des Scrips führt zu folgender Ausgabe auf der Systemausgabe:
A: Equals D: Not equals
Mit Hilfe der switch
- Anweisung können wir
bestimmte Anweisungen in Abhängigkeit eines Ausdrucks ausführen.
Der nachfolgende Quelltextabschnitt zeigt, wie in Abhängigkeit
der Variablen x
, ein bestimmter Bereich ausgeführt wird.
<html><body> <script> var x = 1; // Demo - Initialisierung switch(x) { case 0: document.write("x ist gleich 0"); break; case 1: document.write("x ist gleich 1"); break; case 2: document.write("x ist gleich 2"); break; default: document.write("Default"); } </script> </body></html>
Die Ausführung des obigen Quelltextes führt dazu, dass auf der HTML Seite x ist gleich 1 ausgegeben wird.