Die Switch-Anweisung dient der Verarbeitung von Fallunterscheidungen. Anders als bei der If-Anweisung wird bei der Fallunterscheidung mittels Switch unter Bewahrung einer besseren Übersichtlichkeit zwischen mehr Alternativen unterschieden. Zwar ist es auch mit einem If-Konstrukt möglich, eine Switch-Anweisung nachzubilden, jedoch eignet sich diese Form der Fallunterscheidung eher bei einer nötigen Verschachtelung von Alternativen, bei der mehrere Rahmenbedingungen zu einer stufenweisen Aufspaltung des Codes führt. Gibt es an einem Punkt im Programmablauf mehr als nur zwei Möglichkeiten zum Fortfahren, so ist der Einsatz des JavaScript Switch-Statements sinnvoll. Die Switch-Anweisung hat folgende Form:
switch (Variable oder Ausdruck) { case Wert für diesen Fall: Anweisung(en) [break;] : : [default: Anweisung(en)] }
Eingeleitet wird der JavaScript-Code für eine Switch-Anweisung durch das Schlüsselwort „switch”, auf den ein geklammerter Ausdruck und ein in geschweifte Klammern gefasster Code-Block folgt. Eine Fallunterscheidung durch das Schlüsselwort „case”, auf das ein Wert folgt. Hat der durch Switch verwendete Ausdruck den hier notierten Wert, so werden die Anweisungen ab diesem Case ausgeführt. Eine Fallunterscheidung wird mit dem Schlüsselwort „break”, auf welches ein Semikolon folgt, abgeschlossen.
Wird break weggelassen, so führt dies dazu, dass alle auf den Case folgenden Anweisungen bis zum Autfreten des nächsten Break oder bis zum Ende der geklammerten Switch-Anweisung ausgeführt werden. Neben den vordefinierten Fällen kennt das Switch-Statement einen Default-Bereich. Dieser wird normalerweise am Ende des Switch-Blocks notiert und durch „default:” eingeleitet.
Folgendes Beispiel zeigt einen typischen Anwendungsfall für eine Switch-Anweisung. Hier wird zunächst eine Datenstruktur mit Informationen definiert. In einem Array wird hier unter der Variablen struc eine Reihe von JavaScript-Objekten gespeichert. Ein Objekt der hier gelisteten Datenstruktur besteht aus den Eigenschaften uname und geschlecht.
Nun sollen die Eigenschaften eines jeden in der Struktur gespeicherten Objekts in Form einer Zeichenkette ausgegeben werden. Hierzu muss zunächst durch das Array iteriert werden – alle Elemente, die im Array gespeichert sind, werden nacheinander durch das Script verarbeitet. In der unten gelisteten For-Schleife geschieht genau dies. Über die Array-Eigenschaft Length wird die Anzahl der Elemente ermittelt. Diese bildet zugleich die Grenze bzgl. der durch die For-Schleife durchgeführten Anzahl der Iterationen.
Die Ausgabe des Codes soll hier nicht einfach den Inhalt der Eigenschaften uname und geschlecht der Datenstruktur ausgeben, sondern die in geschlecht gespeicherten Kürzel in interpretierter Form ausgeben. Zu diesem Zweck wird nun die Variable out definiert, in der die zur Ausgabe bestimmte Zeichenkette zusammengestellt wird. An der Stelle, an der das im Datensatz gespeicherte Geschlecht ausgegeben werden soll, wird nun eine Switch-Anweisung verwendet, welche die Fallunterscheidungen ünternimmt.
Im Beispiel wird zwischen drei Fällen unterschieden. Der unter Geschlecht gespeicherte Wert kann in unserem Fall das Zeichen 'w' (weiblich), 'm' (männlich) oder ein beliebiges anderes Zeichen enthalten (wird hier durch ein Fragezeichen angedeutet). Genau das sind unsere Fallunterscheidungen, die sich in den Case-Abschnitten wiederspiegeln. Der Default-Bereich wird immer dann ausgeführt, wenn unter der Eigenschaft geschlecht nicht 'w' oder 'm' gespeichert ist. Die letzte Anweisung innerhalb des For-Blocks sorgt dafür, dass die Zeichenkette mit den Informationen zum jeweiligen Datensatz per write() in aktuellen HTML-Dokument ausgegeben wird. Diese Methode ist Teil der Schnittstelle des zentralen JavaScript-Objekts Document.
<script language="javascript" type="text/javascript"> <!-- // JavaScript-Bereich für ältere Browser auskommentieren // Array mit Objekten erzeugen // Eigenschaften der Objekte sind uname und geschlecht var struc = [ { uname: 'Wolli', geschlecht: '?' }, { uname: 'Willi', geschlecht: 'm' }, { uname: 'Walli', geschlecht: 'w' } ]; // Alle enthaltenen Elemente von struc durchgehen for (var i = 0; i < struc.length; i++) { // Variable zur Zwischenspeicherung der Ausgabe zum aktuell // in Bearbeitung befindlichen Element var out = 'Benutzername: ' + struc[i].uname + ', Geschlecht: '; // Beim Geschlecht gibt es drei Möglichkeiten switch (struc[i].geschlecht) { // 1. Fall: 'w' ist in der Eigenschaft geschlecht angeben case 'w': out += 'weiblich'; break; // 2. Fall: Eigenschaft geschlecht ist mit 'm' belegt case 'm': out += 'm\u00e4nnlich'; break; // In allen anderen Fällen wird der Default-Bereich ausgeführt default: out += 'keine Angabe'; } // Gesammelte Informationen im Dokument ausgeben document.write (out + '<br>'); } // --> </script>
Hallo wollte gerade das Script für die Schriftvergrößerung testen, aber irgendwie bekomme ich das nicht hin. Habe eine Joomla Website und dort die ... » mehr
von Gast am Donnerstag, 22. April 2010 13:32 in JavaScript - bisher 1 AntwortHallo,
damit kann man nicht allzu viel anfangen. Soviel ich weiss kann es zuweilen Probleme mit Tabellen-Layouts geben. Dort werden die ... » mehr
Hallo, ich hab eben das Javascript zur Schriftengröße eingebaut, klappt auch wunderbar auf Firefox, aber der IE 8 hat folgendes Problem: - wenn ich ... » mehr
von horst1234 am Dienstag, 23. Februar 2010 13:06 in JavaScript - bisher 1 AntwortIch hab das charset im Header geändert (wie in der beispiel.html), und schon klappt es ... » mehr
Hallo, ich möchte gerne eine Zeile zwischen zwei andere Zeilen einfügen. Leider klappt folgender Versuch noch nicht so richtig. Vielleicht kann mir ... » mehr
von Bluecaspar am Mittwoch, 10. Februar 2010 18:09 in JavaScript - bisher 2 AntwortenJa genau, das war der Fehler. Vielen Dank Alex.
Hier der korrigierte Code:
<html>
<head>
<title>
Test
... » mehr
Hallo, ich würde gerne ein Fenster in einer Webseite erzeugen. Das Fenster sollte dabei auf ein Frame begrenzt sein, sich also nicht aus diesen ... » mehr
von Bluecaspar am Dienstag, 9. Februar 2010 13:57 in JavaScript - bisher 2 AntwortenJa hervorragend, dass ist genau das was ich möchte. Danke ... » mehr
Hallo, ich bin gerade dabei die Galerie mit der Lightbox 2 zu verknüpfen, da ich die Bilder im Vollformat gerne in diesem schicken aufpoppenden ... » mehr
von GoPeter am Montag, 16. November 2009 23:38 in JavaScript - bisher 16 AntwortenSoo...hat lange gedauert...aber jetzt ist es endlich ... » mehr
¬ Menu
¬ Gratis Download
¬ Seminare
¬ Yoga
¬ Insolvenzrecht
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.
¬ Foren
¬ Buchtipp

JavaScript, m. CD-ROM - Einstieg für Anspruchsvolle
Weitere JavaScript Literaturtipps finden Sie unter JavaScript Bücher
Webdesign •
Beratung Internetseite •
Programmierung Internetseite