split.s: case

Hallo,

besteht die Möglichkeit bei switch-case-Anweisungen auch mehrere Fallmöglichkeiten für case anzugeben?

Bsp.:

  
switch (fall) {  
   case 1,3,8:  
      ...  
   case 2:  
      ...  
  
usw.  

oder macht man sowas mit einem anderen Trick?
Ich habe nämlich relativ viele Fallmöglichkeiten (ca. 70 stk.)

  1. [latex]Mae  govannen![/latex]

    Hallo,

    besteht die Möglichkeit bei switch-case-Anweisungen auch mehrere Fallmöglichkeiten für case anzugeben?

    Bsp.:

    switch (fall) {
       case 1,3,8:
          ...
       case 2:
          ...

    usw.

      
    ~~~javascript
    switch(fall) {  
      case 1:  
      case 3:  
      case 8:  
        ...  
        break;  
      case 2:  
        ...  
        break;  
      case 4711:  
        ...  
        break;  
    }
    

    Cü,

    Kai

    --
    When the limos return for their final review, it's all thru'
    - all they can see is the morning goo.
    "There's no-one left alive - must be draw."
    So the Blackcap Barons toss a coin to settle the score.
    ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
    1. Supi!
      Bei so kompetenten Antworten sei mir noch eine weitere kleine Frage gestattet:
      Warum funktioniert bei mir nur case "1" (also nur mit Anführungszeichen), aber nicht: case 1

      Zur Erklärung: Der Wert fall stammt aus einer Benutzereingabe die mittels Ajax übertragen wurde.

      1. Hallo,

        Warum funktioniert bei mir nur case "1" (also nur mit Anführungszeichen), aber nicht: case 1

        Bei switch wird Typ und Wert überprüft. Es wird quasi der Operator === beim Vergleich verwendet.
        "1" erzeugt einen String-Wert, 1 einen Number-Wert. Wenn du einen String-Wert hast - was du offenbar der Fall ist, wenn nur case "1" funktioniert -, dann kannst du nicht case 1 schreiben, weil eben Typ und Wert verglichen werden. Die Typen unterscheiden sich halt (String vs. Number).

        Zur Erklärung: Der Wert fall stammt aus einer Benutzereingabe die mittels Ajax übertragen wurde.

        Was du aus Formularfeldern oder per prompt() ausliest, ist ein String - sofern du ihn nicht ausdrücklich z.B. mit parseInt in einen Number-Wert umwandelst.

        Mathias

  2. Hallo split.s,

    oder macht man sowas mit einem anderen Trick?

    Jop so isses:

    switch (fall) {
       case 1: case 3: case 8:
          ...
          break;
       case 2:
          ...
          break;
    }

    Man macht sich schlicht und ergreifend die Tatsache zu nutzen, dass die Schleife nicht endet, wenn man kein break angibt!

    Lg Niko