Diskussion:Websiteentwicklung: JavaScript: Bedingte Anweisungen

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Autorenliste[Bearbeiten]

Dieser Artikel basiert auf dem Artikel [[Websiteentwicklung: JavaScript: Programmablauf und Kontrollstrukturen|Websiteentwicklung: JavaScript: Programmablauf und Kontrollstrukturen]] aus dem freien Projekt wikibooks und steht unter der GNU Lizenz für freie Dokumentation und der CC-by-sa 3.0. Gemäß den Lizenzbestimmungen ist hier die Liste der Autoren zum Exportzeitpunkt 24. Mar. 2007 11:09:12 UTC wiedergegeben.

Benutzer
S.moeller, Edits:19

Parzi, Edits:4

IP-Adressen
An dem Artikel haben keine IP's mitgearbeitet oder sie sind hier nicht angegeben.
Einen fertig ausgefüllten Textbaustein erstellt Duesentrieb's Contributor Tool auf dem Wikimedia Toolserver. Ist die Liste lang, ist es zweckmäßig, dafür eine neue Seite zu erstellen und von der Seite mit den importierten Inhalten darauf zu verweisen.


Diskussion[Bearbeiten]

switch[Bearbeiten]

Da ist ein grober Fehler in der Beschreibung. Ein fehlendes break in einem case-Block führt nie zu weiteren Überprüfungen, sondern nur zu einem sog. Durchfallen bis zum ersten irgendwann folgenden break (if any). Und sämtliche Anweisungen bis dahin werden ausgeführt. Für so ein Durchfallen gibt es durchaus sinnvolle Anwendungen. (Das jetzt aber buchreif zu formulieren ... kein Lust). --Buchfreund 15:36, 30. Dez. 2013 (CET)[Beantworten]

Schon klar, dass man das anwenden kann. Ich gucke mir den Abschnitt die Tage nochmals an. Gruß Parzi 16:01, 30. Dez. 2013 (CET)[Beantworten]
Wenn mich meine Erinnerung nicht trügt, verhalten sich die Mitglieder der C-Familie genauso. Vielleicht findet ihr dort geeignete Formulierungen. -- Jürgen 16:45, 30. Dez. 2013 (CET)[Beantworten]
Naja, C und C# unterscheiden sich da schon. Ich glaube, C# erlaubt kein Weglassen eines breaks, wenn der entsprechende case-Zweig Anweisungen enthält. Das Folgende geht in JS und C, aber nicht in C# wegen der Anweisung im case-'a'-Block, meine ich.
s = ".";
switch(ch)
{
   case 'a':
       s = " und mein Lieblingsbuchstabe.";   
   case 'e':
   case 'i':
   case 'o':
   case 'u':
       messagebox(ch + " ist ein Vokal" + s);
       break;
       
}
--Buchfreund 17:07, 30. Dez. 2013 (CET)[Beantworten]
Stimmt, da hat mich meine Erinnerung getrogen. Ich habe jetzt in einem C#-Buch nachgeschlagen (das hätte ich besser vorher getan), und da wird das ausdrücklich als Unterschied zu C++ und Java bezeichnet: ... bei C# nicht in den nächsten Abschnitt durchsickern darf" (Fehlermeldung des Compilers). Also dürft ihr euch nicht bei C# inspirieren lassen. -- Jürgen 17:20, 30. Dez. 2013 (CET)[Beantworten]

nochmal switch: geschweifte Klammern in den case-Zweigen[Bearbeiten]

Habe ich noch nie gesehen (egal welche Sprache). Würd' ich löschen. Gerade aus der Syntax-Darstellung kann man eine Menge Luft rauslassen. So sieht das mE besser weil übersichtlicher aus:

switch(Variable oder Ausdruck)
   {
   case Wert_1:  
       Anweisungen 1;
       break;
   case Wert_2:  
       Anweisungen 2;
       break;
 
usw.

--Buchfreund 17:16, 30. Dez. 2013 (CET)[Beantworten]

Ist mir heute auch aufgefallen, sieht zur Zeit irgendwie wirr und umständlich aus. Ich werde es gleich im Sinne Deines Vorschlags kompakter fassen. Gruß Parzi 20:38, 30. Dez. 2013 (CET)[Beantworten]
Die neue Fassung geht doch. Oder? Durch die drei Anweisungen im zweiten Zweig wird auch gleich deutlich, dass man eine oder mehrere Anweisungen einsetzen kann. --Parzi 20:46, 30. Dez. 2013 (CET)[Beantworten]
Gerade in der formalen Syntax-Darstellung sind die beispielhaften Darstellungen eher fehl am Platz. Sowas gehört ins Beispiel. Ich habe noch mal die Syntax-Darstellung vereinfacht. Ich denke, dass versteht schon jeder so. selfhtml.org kommt da mit deutlich weniger aus. --Buchfreund 19:14, 14. Jan. 2014 (CET)[Beantworten]