在开关盒中安装开关盒是不好的做法吗?

ser*_*oth 5 javascript coding-style

在开关盒中安装开关盒是不好的做法吗?如果是这样,有什么替代方案?我真的不想使用if/ else if如果我不需要.

而不是做一些像:

if((this == 1) && (that == 1)){ //something }
else if((this == 1) && (that == 2)){ //something }
else if((this == 2) && (that == 3)){ //something }
Run Code Online (Sandbox Code Playgroud)

我在思考:

switch(this){
    case 1:
        switch(that){
            case 1:
                // something
            break;
            ....
        }
    break;
    ....
}
Run Code Online (Sandbox Code Playgroud)

这对我来说真的很不对劲.语法没有错,但在正确的练习方面是错误的.

use*_*876 7

拥有执行大量不同功能的大量功能是不好的做法.如果你在一个开关盒中有一个开关盒,这表明你的功能可能太大了,你应该考虑把它分成更小,更容易理解的块.

但是没有严格的规则; 这一切都取决于确切的情况.


小智 4

避免以下方法

switch(id)
{
    case 1:
    {
        switch (subid)
        {
            case 4:
                // nested code
        }
    }
    case 2:
         // some code
}
Run Code Online (Sandbox Code Playgroud)

更好的方法是通过将嵌套部分移动到方法中来改进代码

switch(id)
{
    case 1:
        SubSwtich(subid);
        break;
    case 2:
         // some code
}

function SubSwtich(int subid)
{
        switch (subid)
        {
            case 4:
                // nested code
        }
}
Run Code Online (Sandbox Code Playgroud)