我正在构建一个函数,该函数在运行代码块之前验证用户的输入是否与应用程序的上下文相关。我想知道一个“if...else”语句或switch语句哪个更可靠/更好的解决方案?我倾向于使用if...else,因为我只有两个结果--用户的输入要么有效,要么告诉用户程序将接受什么,但在我深入研究之前,我希望从更有经验的人那里获得建议。
编辑:为了明确起见,当i和o都是“a”或“b”,或者都是“c”或“d”,或者都是“e”或“f”时, 我只希望我的代码执行。
此外,在这种情况下,我是否正确处理了布尔运算符?
编辑:为了明确起见,当i和o都是“a”或“b”,或者都是“c”或“d”,或者都是“e”或“f”时, 我只希望我的代码执行。
console.log("i="+i+" o="+o);
if
(((i == ("a" || "b")) && (o == ("a" || "b")))
|| ((i == ("c" || "d")) && (o == ("c" || "d")))
|| ((i == ("e" || "f")) && (o == ("e" || "f"))))
{
//my block here
}
else
{
//tell the user their input doesn't make sense
}
此外,在这种情况下,我是否正确处理了布尔运算符?
("c" || "d")
只会被计算成"c"
。所有的检查都是这种情况。你需要这样:((i == "a" || i == "b") && (o == "a" || o == "b"))
。 - Purag