Schwaderer: Wer braucht schon swicht-Schleifen ?

Hallo

Ich hab mal versuch eine swicht-Schleife einzu setzen dann ht der MS IE Syntaxfehler gemeckert. Aber dann hab ich festgestellt es geht uch mit if-Schleifen.Hier das swicht-Schleifen-Beispiel mit if-Schleifen:

<script language="JavaScript">
<!--
Eingabe = window.prompt("Zahl zwischen 1 und 4","");
if(Eingabe == "1")
  { alert("Sie sind sehr bescheiden"); }
else
  {
   if(Eingabe == "2")
    { alert("Sie sind ein aufrichtiger Zweibeiner"); }
   else
    {
     if(Eingabe == "3")
      { alert("Sie haben ein Dreirad gewonnen"); }
     else
      {
       if(Eingabe == "4")
        { alert("Gehen Sie auf allen Vieren und werden Sie bescheidener"); }
       else
        { alert("Sie bleiben leider dumm"); }

}
    }
  }
//-->
</script>

  1. switch(doofe.Variablen)  
    {
    case swicht:
        alert ("Syntax-Fehler");
        break;
    case switch:
        alert ("Subba");
        break;
    }

  2. Sorry aber das war ja ne ganz tolle Erkenntniss, so man kann also eine Switch Schleife auch mit IF und ELSE machen, hm ja dat is ja janz was neues.
    Das einzige ist, dass Switch vielleicht ein bisserl übersichtlicher ist als IF und ELSE, und im Grundstudium Informatik ist diese Konstruktion genau so schlimm, wie das berühmte GOTO, mit dem man einfach jede Kontrollstruktur nachbilden kann, nur kann das Programm dann keiner mehr lesen und kapieren, der keinen Silizimchip in der Birne hat.
    In Javascript ist es allerdings leider so, das switch früher nicht zum Sprechstandard gehört hat, und in alten Browsern (Netscape unter 4.0, IE weiss ich nicht), zu Fehlermeldungen führt. Deshalb bleibt halt nix anderes übrig als zum IF und ELSEN zu greifen, auch wenn es einfach nur schlechter Programmierstil ist.

    Gruss

    Marko

    1. Hi Marko!

      Sorry aber das war ja ne ganz tolle Erkenntniss, so man kann also eine Switch Schleife auch mit IF und ELSE machen, hm ja dat is ja janz was neues.

      Ja, ich bin auch ganz schoen beeindruckt... von der beneidenswerten Faehigkeit, einen Quelltext so unuebersichtlich wie moeglich zu machen.

      Das einzige ist, dass Switch vielleicht ein bisserl übersichtlicher ist als IF und ELSE, und im Grundstudium Informatik ist diese Konstruktion genau so schlimm, wie das berühmte GOTO, mit dem man einfach jede Kontrollstruktur nachbilden kann,

      Ja, es gibt meines Wissens kein Struktogramm, das einen switch-Block (nicht Schleife, oder wird da irgendwas mehrmals durchlaufen?) beschreibt, es sei denn, man verwendet in wirklich jedem Zweig das break. Aber was soll's, solche Struktogramme sind doch eh was fuer Warmduscher ;-), und es fuehrt teilweise zu ineffizientem Code (ich sage nur "Zweipolprinzip", welches vom return-Statement konsequent ignoriert wird *g*).

      nur kann das Programm dann keiner mehr lesen und kapieren, der keinen Silizimchip in der Birne hat.

      *g* Huebsch gesagt, aber beim Assemblern gibt's nun mal nichts anderes.

      In Javascript ist es allerdings leider so, das switch früher nicht zum Sprechstandard gehört hat, und in alten Browsern (Netscape unter 4.0, IE weiss ich nicht), zu Fehlermeldungen führt.

      Yepp, switch gibt es erst seit JavaScript1.2, und ich glaube, die aelteren IE4s koennen das noch nicht. Schade eigentlich, ich finde das switch naemlich echt praktisch.

      Bye, Calocybe

  3. Moin,

    es gibt ja aufgrund der nicht immer vorhandenen JS 1.2-Fähigkeit gute Gründe, switch() { ... } durch if's zu ersetzen. Aber die Konstruktion

    if(bedingung1) { tu_was_1();  }
    else {
      if (bedingung2) { tu_was_2(); }
      else {
         ...

    führt schnell zu Chaos im Quellcode... Probier doch alternativ einfach

    if(bedingung1)        { tu_was_1(); }
    else if(bedingung2) { tu_was_2(); }
    else if(bedingung3) { tu_was_3(); }
    ...
    ...
    else                {tu_sonstwas(); }

    Liest sich doch imho schon viel übersichtlicher, oder?

    Viele Grüße

    Anderas