首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以使用带有两个变量的case/switch语句吗?

我可以使用带有两个变量的case/switch语句吗?
EN

Stack Overflow用户
提问于 2012-02-11 05:36:39
回答 9查看 173.5K关注 0票数 48

当涉及到JavaScript时,我是一个新手,我的理解是,使用一个SWITCH/CASE语句比使用一大堆IF语句更快。

但是,我想使用带有两个变量的SWITCH/CASE语句。

我的web应用程序有两个滑块,每个滑块都有五个状态。我希望行为基于这两个变量的状态。显然,这是一大堆IF/THEN语句。

我想到的一种方法是将两个变量连接成一个变量,然后我可以切换/CASE。

有没有更好的方法来使用两个变量来完成切换/用例?

谢谢!

EN

回答 9

Stack Overflow用户

发布于 2018-08-31 17:05:04

是的,你也可以这样做:

代码语言:javascript
复制
    switch (true) {

     case (var1 === true && var2 === true) :
       //do something
       break;
     case (var1 === false && var2 === false) :
       //do something
       break;

      default:

    }

这将始终执行开关,与if/else非常相似,但看起来更简洁。只要继续检查case表达式中的变量即可。

票数 29
EN

Stack Overflow用户

发布于 2012-02-11 05:50:16

按位运算符怎么样?您要处理的不是字符串,而是“枚举”,它看起来更“优雅”。

代码语言:javascript
复制
// Declare slider's state "enum"
var SliderOne = {
    A: 1,
    B: 2,
    C: 4,
    D: 8,
    E: 16
};

var SliderTwo = {
    A: 32,
    B: 64,
    C: 128,
    D: 256,
    E: 512
};

// Set state
var s1 = SliderOne.A,
    s2 = SliderTwo.B;

// Switch state
switch (s1 | s2) {
    case SliderOne.A | SliderTwo.A :
    case SliderOne.A | SliderTwo.C :
        // Logic when State #1 is A, and State #2 is either A or C
        break;
    case SliderOne.B | SliderTwo.C :
        // Logic when State #1 is B, and State #2 is C
        break;
    case SliderOne.E | SliderTwo.E :
    default:
        // Logic when State #1 is E, and State #2 is E or
        // none of above match
        break;


}

然而,我同意其他人的观点,切换情况逻辑中的25种情况并不太好,在某些情况下,if-else可能会更“好看”。不管怎么说。

票数 28
EN

Stack Overflow用户

发布于 2012-02-11 05:39:33

代码语言:javascript
复制
var var1 = "something";
var var2 = "something_else";
switch(var1 + "|" + var2) {
    case "something|something_else":
        ...
        break;
    case "something|...":
        break;
    case "...|...":
        break;
}

如果每种情况有5种可能性,你就会得到25个案例。

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9235152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档