将 if((t >= 12) && (t<20)){} 转换为 switch

convert if((t >= 12) && (t<20)){} to switch

我有以下代码:

var t = 13;

function check() {
    if ((t >= 12) && (t < 20)) {
        alert(true);
    }
}

我想将其转换为 switch 语句。 我试过这个:

function test() {
    switch (t) {
        case (t >= 12) && (t <= 20):
            alert("> 12");
            break;
    }
}

但它不是 work.I 通过 console.Any 想法没有错误吗? 实际上这个问题是在与 Pascal 比较之后出现的,我可以这样做:

case t of
12..19://code
end;

等于

if (t>=12) and (t<=19) then
//code

终于找到答案了:

function test(){
        switch(true){
            case (t >= 12) && (t <= 20):alert("> 12");
            break;

        }
    }

switch 不会像那样工作,你可以通过 true 来切换并且可以像下面这样使用 case 语句

switch(true){
            case ((t >= 12) && (t <= 20)):
            alert("> 12");
            break;
        }

注意::这里推荐使用if/else作为更好的选择

工作演示:

var t = 13;

function test(){
        switch(true){
            case ((t >= 12) && (t <= 20)):
            alert("> 12");
            break;
        }
    }

test();