Thomas Schmieder: switch case break

Hallo an alle sattelfesten Programmierer,

Ich habe im MSIE5.5 (andere habe ich noch nicht ausprobiert) ein Problem mit switch/case/break.

Wenn man das break hinter einem Case-Selector weglässt, wird die Anweisung hinter dem nächsten case-Selector auch ausgeführt, auch wenn der Selector nicht passt.

Ist das so vorgesehen?

Ich erinnere mich so ganz vage, dass bei C trotzdem der Selector geprüft wird - oder? Hab ich wohl was durcheinandergebracht mit Pascal, oder?

Stelle mir das also so nun vor:

durch die Switch-Anweisung wird eine Liste aufgebaut, in der die Einsprungspunkte in die Befehlsliste stehen. Geprüft wird nur ein einziges Mal. Dann in die Befehlsliste verzweigt, sus der man bestenfalls mit break wieder rauskommt, bevor sie zu Ende ist.

Stimmt das nun so?

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
  1. Hallo,

    Wenn man das break hinter einem Case-Selector weglässt, wird die Anweisung hinter dem nächsten case-Selector auch ausgeführt, auch wenn der Selector nicht passt.

    Ja.

    Ist das so vorgesehen?

    Ja.

    Ich erinnere mich so ganz vage, dass bei C trotzdem der Selector geprüft wird - oder?

    Nein.

    Hab ich wohl was durcheinandergebracht mit Pascal, oder?

    Ja.

    durch die Switch-Anweisung wird eine Liste aufgebaut, in der die Einsprungspunkte in die Befehlsliste stehen. Geprüft wird nur ein einziges Mal. Dann in die Befehlsliste verzweigt, sus der man bestenfalls mit break wieder rauskommt, bevor sie zu Ende ist.

    Stimmt das nun so?

    Ja.

    Das steht so auch in SelfHTML.

    Gruß
    Slyh

    --
    Es gibt 10 Arten von Menschen. Solche, die das Binärsystem verstehen, und solche, die es nicht verstehen.
    1. Hi,

      durch die Switch-Anweisung wird eine Liste aufgebaut, in der die Einsprungspunkte in die Befehlsliste stehen. Geprüft wird nur ein einziges Mal. Dann in die Befehlsliste verzweigt, sus der man bestenfalls mit break wieder rauskommt, bevor sie zu Ende ist.

      Das steht so auch in SelfHTML.

      hab ich überlesen, obwohl ich nochmal gesucht habe bei JavaScript
      Sollte es tatsächlich so ausführlich drinstehen wäre ein Link nett, damit ich es der Doku einverleiben kann.

      Dank an Dich

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      1. Hallo,

        hab ich überlesen, obwohl ich nochmal gesucht habe bei JavaScript
        Sollte es tatsächlich so ausführlich drinstehen wäre ein Link nett, damit ich es der Doku einverleiben kann.

        http://selfhtml.teamone.de/javascript/sprache/bedingt.htm#switch

        Gruß
        Slyh

        1. Hallo nochmal,

          http://selfhtml.teamone.de/javascript/sprache/bedingt.htm#switch

          Genau den Text hatte ich natürlich gelesen und mich davon verwirren lassen. Obwohl ich mir als alter Assemblerhase durchaus vorstellen kann, wie sowas abgewickelt wird. Würde vielleicht durchaus zur Klarheit beitragen, wenn Stefan da den Satz aufnehmen würde:"Es findet nur eine einzige Prüfung statt. Danach werden alle Statements ab der passenden Stelle bis zum nächsten break ausgeführt"...

          Aber im guten alten dbase konnte man sogar hinter jedem Case eine eigene Bedingung hinterlegen...

          Kommt davon, wenn man in mehreren verschiedenen Sprachen an einm Tag gleichzeitig rumturnt.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.