即使if语句为false,下面的else语句也不会执行。我想我已经犯了一些非常基本的错误,但无法弄清楚是什么。
var a = ["king","queen","100"];
for (var i=0; i<a.length; i++) {
if (a[i] === "king" || "queen"){
console.log("monarch");
}
else {
console.log("The number is: "+ parseInt(a[i]));
}
}
// This prints out "monarch" 3 times
答案 0 :(得分:1)
应该是:
var a = ["king","queen","100"];
for (var i=0; i<a.length; i++) {
if (a[i] === "king" || a[i] === "queen"){
console.log("monarch");
}
else {
console.log("The number is: "+ parseInt(a[i]));
}
}
你用我们说口语的方式写了你的布尔表达式,“A是1或2”。这不是解释OR
的方式。
OR
的左侧是true
:a[i] === "king"
是true
;或OR
的右侧是true
:"queen"
。它正在自己评估字符串,字符串"queen"
不是null
,所以评估为true
。
答案 1 :(得分:0)
您必须使用||
分别制定两个条件,如下所示:a[i] === "king" || a[i] === "queen"