我正在尝试使用javascript将if语句转换为switch语句。这是有效的if语句:
if(!error1(num, a_id) && !error2(num, b_id) && !error3(num, c_id) && !error4(num, d_id)) {
a.innerHTML = num;
有关如何将其置于switch语句中的任何提示都会很棒。感谢
答案 0 :(得分:1)
你可以将其设为switch
,但目前还不清楚为什么要这样做。乍一看,这不是那种使用switch
的情况(在一组值中选择并为每个值做出不同的事情)。
这是怎么回事,虽然我不推荐它:
switch (false) {
case !error1(num, a_id):
case !error2(num, b_id):
case !error3(num, c_id):
case !error4(num, d_id):
// Do nothing
break;
default:
a.innerHTML = num;
break;
}
这适用于JavaScript,但大多数其他语言switch
都没有。它起作用的原因是当执行点到达时case
标签被评估,它们是guaranteed to be evaluated in source code order。所以你要切换值false
,它将首先针对===
的返回值进行测试(使用严格相等,!error1(num, a_id)
),然后如果不匹配,反对!error2(num, a_id)
等;如果它们都不匹配,则它们都评估true
,并且default
块中的代码运行。