在switch语句中,是否可以在每种情况下使用模运算符?

时间:2014-07-23 15:28:13

标签: javascript switch-statement modulo

是否可以使用switch语句执行此类操作?

switch(foo) {
    case %bar==0:
    //Do stuff
    break;
}

为了更清楚,switch语句应该检查foo是否除以0是否/在每种情况下foo可以被某些东西整除。

2 个答案:

答案 0 :(得分:1)

替代方案是任何Array迭代器,其中bar被定义为值数组。

function fooMod(foo){
    var A= [];
    [2, 3, 4, 5, 6, 7, 8, 9].forEach(function(itm){
        if(foo%itm=== 0){
            A.push(itm+' is a factor of '+foo);
        }
        else{
            A.push(itm+' is not a factor of '+foo);
        }

    });
    return A;
}

<强> fooMod(24)。加入( '\ n');

/*  returned value: (String)
2 is a factor of 24
3 is a factor of 24
4 is a factor of 24
5 is not a factor of 24
6 is a factor of 24
7 is not a factor of 24
8 is a factor of 24
9 is not a factor of 24
*/

答案 1 :(得分:0)

交换机将“fn(foo)foo+barfoo%bar等一项评估的结果与各种可能的结果进行比较。您想要计算多个值[foo%bar1, foo%bar2,...]并找到第一个等于0的值。

我没有看到通过开关实现这种情况的方法(好吧,你可以使用直通,但这将是一种迂回的方式)#/ p>