Homepage-Webhilfe Event-Banner

Bedingungen

Bedingungen in Programmiersprachen erlauben es, bestimmte Fälle abzuprüfen, z. B. ob eine Variable einen bestimmten Wert hat. JavaScript bietet, wie in vielen anderen Sprachen auch, zwei Möglichkeiten: if (einfache Verzweigung) und switch-case (mehrfache Verzweigung).


Eine einfache Verzweigung dient in erster Linie dafür, nur einen bestimmten Fall abzuprüfen. Hierfür notieren wir als erstes das Schlüsselwort if gefolgt von einem runden Klammernpaar. Zwischen dem Schlüsselwort und dem Klammernpaar wird meistens noch ein Leerzeichen angegeben. Dieses dient jedoch nur zur besseren Lesbarkeit. Ein Fall stellt dabei immer einen Block dar, weshalb nach der schließenden runden Klammer ein geschweiftes Klammernpaar notiert wird. Innerhalb des Blocks werden nun Anweisungen notiert. Dies können normale Statements aber auch weitere Verzweigungen sein. Eine einfache Verzweigung kann wie folgt aussehen:

if (BEDINGUNG)
{
    // Anweisungen
}

An welcher Stelle die geschweiften Klammern gesetzt werden, wirkt sich nicht auf dessen Funktion aus. Folgender Aufbau (im Vergleich zu oben) wäre ebenfalls möglich:

if (BEDINGUNG) {
    // Anweisungen
}

Wichtig: Es empfiehlt sich, für einen der zwei „Stile“ zu entscheiden und diesen dann im kompletten Skript bzw. auf der kompletten Website auch durchgängig zu verwenden.

Gibt es nur ein Statement, welches innerhalb des Blocks notiert werden soll, so können die geschweiften Klammern auch weggelassen werden.

if (BEDINGUNG)
    // Anweisung

Zusätzlich ist es mit solchen Verzweigungen (öfters auch einfach nur als Abfrage bezeichnet) auch möglich, noch zusätzlich einen Code-Block zu notieren, für den Fall, dass die Bedingung nicht zutrifft. Hierfür wird nach dem if-Block das Schlüsselwort else und ein weiterer Block notiert. Auch hier können gegebenenfalls die Klammern weggelassen werden.

if (BEDINGUNG)
{
    // Anweisungen falls Bedingung zutrifft
}
else
{
    // Anweisungen falls Bedingung zutrifft
}

Die angegebene Bedingung muss immer einen Wert vom Typ Boolean sein. Wollen wir überprüfen, ob eine Variable den Wert true enthält, so müssen wir also lediglich den Variablennamen notieren. Möchten wir prüfen, ob die Variable den Wert false enthält, so notieren wir den Variablennamen mit einem vorangestellten Ausrufezeichen (Negierung).

if (computerAngeschaltet)
{
    // Anweisungen
}

JavaScript bietet noch einige sogenannte Operatoren, die für den Vergleich genutzt werden können. Mit Hilfe dieser Vergleichs-Operatoren ist es möglich, einen Wert vom Typ Boolean „zu erzeugen“. Die untenstehende Tabelle zeigt die in JavaScript verfügbaren Vergleichs-Operatoren mit den Beispielwerten a und b:

a == b Wert a ist gleich b
a === b Wert und Typ a ist gleich b
a != b Wert a ist ungleich b
a !== b Wert und Typ a ist ungleich b
a > b Wert a ist größer als b
a >= b Wert a ist größer als oder gleich b
a < b Wert a ist kleiner als b
a <= b Wert a ist kleiner als oder gleich b

Wichtig: JavaScript kann beim Vergleich zwischen Wert und Wert und Typ unterscheiden. So ergibt die Bedingung "123" == 123 den Wert true, wohingegen die Bedingung "123" === 123 unwahr ist. Dieses Schema gilt auch für != und !==. Dies kommt daher, dass bei der Bedingung "123" == 123 eine automatische Typkonvertierung durchgeführt wird. Dies passiert z. B. auch dann, wenn Sie der Funktion alert() eine Zahl übergeben: es erfolgt eine automatische Konvertierung in eine Zeichenkette.
Des Weiteren sollte beachtet werden, dass ein Vergleich von Objekten nur dann funktioniert, wenn es sich um das selbe Objekt handelt, nicht aber, wenn es sich um ein Objekt mit gleichem Inhalt (dazu später mehr) handelt.

Hier nun das erste Beispiel mit einem Meldungsfenster:

if (confirm("Bitte klicken Sie auf einen der Buttons!"))
	document.write("Sie haben OK geklickt!");
else
	document.write("Sie haben Abbrechen geklickt!");
Vorschau

Übrigens: Natürlich können wir auch mehrere Bedingungen verknüpfen. Hierfür gibt es das logische Und && und das logische Oder ||. Bei der Kombination von Und und Oder empfiehlt es sich bzw. ist es notwendig, mit weiteren runden Klammernpaaren zu arbeiten.

if (BEDINGUNGA && BEDINGUNGB)
    // Anweisung

Wie bereits oben erwähnt ist es möglich, Bedingungen zu verschachteln. Eine Verzweigung die im else-Zweig verschachtelt wurde, könnte dann z. B. so aussehen:

if (confirm("Bitte klicken Sie auf einen der Buttons!"))
	document.write("Sie haben auf OK geklickt!");
else 
{
	if (confirm("Bitte klicken Sie nochmals auf einen der Buttons!"))
		document.write("Sie haben beim 1. Mal auf Abbrechen und beim 2. Mal OK geklickt!");
	else
		document.write("Sie haben beides Mal auf Abbrechen geklickt!");
}
Vorschau

Das obige Beispiel kann jedoch in JavaScript verkürzt werden. Wenn sich die weitere Verschachtelung im else-Zweig befindet, können wir nämlich an Stelle des Schlüsselworts else das Schlüsselwort else if verwenden, hinter welchem eine weitere Bedingung notiert wird. Diese Bedingung wird natürlich nur geprüft, wenn die erste Bedingung nicht zutrifft. Das folgende Beispiel zeigt, wie der obige Code mittels else if ersetzt und verkürzt werden kann:

if (confirm("Bitte klicken Sie auf einen der Buttons!"))
	document.write("Sie haben auf OK geklickt!");
else if (confirm("Bitte klicken Sie nochmals auf einen der Buttons!"))
	document.write("Sie haben beim 1. Mal auf Abbrechen und beim 2. Mal OK geklickt!");
else
	document.write("Sie haben beides Mal auf Abbrechen geklickt!");

Wichtig: Natürlich ist auch die Verwendung mehrerer else if-Bedingungen möglich. Es gilt lediglich zu beachten, dass sofern ein einfacher else-Zweig vorhanden ist, dieser immer als letztes notiert werden muss.

Übrigens: In JavaScript gibt es die Möglichkeit, einfache Verzweigungen einzeilig darzustellen. Diese Methode kann nur dann verwendet werden, wenn sowohl im if- als auch im else-Zweig ein Statement notiert wird, welches jeweils einen Wert zurückgibt. Das Resultat kann dann z. B. einer Variablen zugewiesen werden. Um diese Kurzdarstellung zu verwenden, notieren wir die Bedingung (vorzugsweise in runden Klammern) gefolgt von einem Fragezeichen ?. Nun folgt das Statement bzw. der Wert falls die Bedingung zutrifft. Als nächstes notieren wir einen Doppelpunkt : gefolgt von dem Statement oder dem Wert für den Fall, dass die Bedingung nicht zutrifft. Dies sieht dann z. B. so aus:

var wert = (a > b) ? "a ist größer als b" : "a ist nicht größer als b";

Mehrfache Verzweigungen werden in JavaScript mit switch-case realisiert. Um eine solche Verzweigung aufzustellen, benötigen wir das Schlüsselwort switch und einen Wert der geprüft werden soll. Dieser muss dafür in einem runden Klammernpaar notiert werden. Als nächstes notieren wir einen Block mit geschweiften Klammern. Innerhalb des Blocks werden nun die verschiedenen Fälle angegeben. Hierfür notieren wir das Schlüsselwort case und anschließend den Wert, welcher mit dem oben angegebenen Wert verglichen werden soll, gefolgt von einem Doppelpunkt :. Nun notieren wir einen Zeilenumbruch und darunter unsere auszuführende Statements (hier wird kein Block mit geschweiften Klammern benötigt). Als letzte Anweisung muss das Schlüsselwort break (gefolgt von einem Semikolon) notiert werden. Ähnlich wie bei if-else gibt es auch hier die Möglichkeit, den Fall abzufangen, wenn keine der aufgelisteten Bedingungen zutrifft. Hier nutzen wir an Stelle des case-Schlüsselworts default. Das folgende Beispiel soll diesen Text verdeutlichen:

var monat = 3;

switch (monat)
{
	case 1:
		document.write("Januar");
		break;
	case 2:
		document.write("Februar");
		break;
	case 3:
		document.write("März");
		break;
	case 4:
		document.write("April");
		break;
	case 5:
		document.write("Mai");
		break;
	case 6:
		document.write("Juni");
		break;
	case 7:
		document.write("Juli");
		break;
	case 8:
		document.write("August");
		break;
	case 9:
		document.write("September");
		break;
	case 10:
		document.write("Oktober");
		break;
	case 11:
		document.write("November");
		break;
	case 12:
		document.write("Dezember");
		break;
	default:
		document.write("Ungültiger Monat!");
		break;
}
Vorschau

switch-case ist zum Überprüfen eines Wertes mit verschiedenen anderen einzelnen Werten gedacht. Die Verwendung von Wertebereichen ist zwar in JavaScript realisierbar, jedoch sollte darauf komplett verzichtet werden, da dies als schlechter Programmierstil gilt. Wir gehen darauf hier nicht weiter ein. Verwenden Sie für Wertebereiche daher if und else.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK