Boolesche Operatoren in einer switch-Anweisung?

7

Gibt es eine Möglichkeit, syntaktisch mit einem Schalter zu arbeiten?

%Vor%     
Greg 12.07.2010, 04:07
quelle

8 Antworten

13
%Vor%

Hinweis: "other" ist nicht erforderlich, ich zeige nur, dass Sie auch Fälle mit Standardwerten stapeln können.

    
eruciform 12.07.2010, 04:09
quelle
5

Verwenden Sie in den offiziellen Mozilla Developer Center-Dokumenten mehrere Fälle wie:

%Vor%

Wenn Sie nach einer IE-Lösung suchen, verwenden Sie die JScript-Dokumentation für switch , die sich auf Case-Bedingungen als "Labels" beziehen und angeben:

  

Mehrere Etikettenblöcke werden ausgeführt, wenn a   break-Anweisung wird nicht verwendet.

Tatsächlich sagen beide Dokumentationssätze dasselbe über das Zusammensetzen mehrerer Fälle.

    
John K 12.07.2010 04:09
quelle
3

JavaScript funktioniert nicht so. Mach es so:

%Vor%

Wie in C wird JavaScript case -Klausel kaskadieren.

    
staticsan 12.07.2010 04:08
quelle
1
%Vor%     
kmoser 12.07.2010 04:09
quelle
1

Würde etwas entlang dieser Linie funktionieren?

%Vor%     
user387302 12.07.2010 04:10
quelle
1
%Vor%     
J.C. 12.07.2010 04:11
quelle
1

Sie müssen für jeden Wert separate Fälle festlegen.

%Vor%

Mit Ihrem Code erhalten Sie nur dann eine Warnung, wenn i als wahr ausgewertet wird, da eine Zeichenfolge, die nicht leer ist, auch als wahr ausgewertet wird.

    
Adam P 12.07.2010 04:12
quelle
1

Das Problem mit Ihrem Beispiel ist, dass der Ausdruck ('foo' || 'bar') zu 'foo' ausgewertet wird und daher nur dann übereinstimmt, wenn i 'foo' ist, und niemals, wenn i 'bar' ist.

Der Operator || erzeugt den Wert seines ersten Operanden, wenn der erste Operand truthy ist. Andernfalls erzeugt es den Wert des zweiten Operanden. Eine nicht leere Zeichenfolge ist immer truthy, und deshalb gibt Ihr Ausdruck 'foo' zurück.

In JavaScript fällt jedoch case in den nächsten Fall, es sei denn, Sie unterbrechen den Ablauf explizit mit break oder return . Daher können Sie es leicht wie folgt arbeiten lassen:

%Vor%     
Daniel Vassallo 12.07.2010 04:08
quelle

Tags und Links