var game = "play"
var movie = "watch"
var userInput = prompt ("What do you want to do?"); {
if (userInput === game) {
if(Math.random <= 0.5) {
console.log("play some mc")
} else {
console.log ("get some bf3 in ya")
}
}
else (userInput === movie); {
if (Math.random <= 0.5) {
console.log("netflix is the way to go")
} else {
console.log("bit of youtube wouldnt hurt")
}
}
}
当我输入'play'时,两个语句都被触发。
但是,如果我输入'watch',则只会按预期执行else语句。
答案 0 :(得分:3)
其他情况并非如此。
换句话说,在你的代码中说
else (userInput === movie);
对非感性陈述userInput === movie;
进行评估,这就是&#39;其他&#39;的结束。部分。
然后评估/运行花括号之间的其余代码。
因此,要么将其设为else if
语句 - 并删除分号 - 或删除&#34;条件&#34;如果你想要其余的代码运行,无论如何。
请参阅this JSFiddle example(稍加修改以允许玩它)。
var game = "play"
var movie = "watch"
var userInput = prompt ("What do you want to do?"); {
if (userInput === game) {
if(Math.random <= 0.5) {
document.getElementById("result").textContent = "play some mc";
} else {
document.getElementById("result").textContent = "get some bf3 in ya";
}
}
else if (userInput === movie) {
if (Math.random <= 0.5) {
document.getElementById("result").textContent = "netflix is the way to go";
} else {
document.getElementById("result").textContent = "bit of youtube wouldnt hurt";
}
}
}
答案 1 :(得分:0)
更改部分
subchannels
到
else (userInput === movie); {
答案 2 :(得分:0)
您的陈述中else
部分存在一些问题。首先,由于您遗漏了if
的{{1}},因此括号中的条件不会被用作测试;它只是被评估为一种陈述。在右括号后用分号加强了这一点。在else if
语句完成后,else
之后的大括号中的代码只是被评估为代码块。所以不要这样:
if/else
你真的需要这个:
else (userInput === movie); {
答案 3 :(得分:-1)
您在外部其他声明中遗漏了if
语句。 If (...) else
声明不会评估括号中提供的任何条件。而If (...) else if (...)
将会。
所以替换
else (userInput === movie); {
与
else if (userInput === movie) {
以下是包含更改的修复代码段。
var game = "play"
var movie = "watch"
var userInput = prompt("What do you want to do?"); {
if (userInput === game) {
if (Math.random <= 0.5) {
console.log("play some mc")
} else {
console.log("get some bf3 in ya")
}
} else if (userInput === movie) {
if (Math.random <= 0.5) {
console.log("netflix is the way to go")
} else {
console.log("bit of youtube wouldnt hurt")
}
}
}
&#13;