【发布时间】:2019-07-18 11:19:56
【问题描述】:
我正在用 JavaScript 开发一个石头剪刀布游戏,我必须让用户知道是否有平局以及除了石头剪刀布之外是否有无效的用户选择,所以我想嵌套 if/else 语句是合适的。我对 JS 很陌生,无法判断我的代码不起作用的原因是由于嵌套不正确还是其他原因。我得到的只是意外令牌的解析错误。
var UserChoice = window.prompt("Select rock, paper, or scissors");
var computChoice = Math.random();
if (computChoice <= 0.33) {
computChoice = "scissors";
} else if (computChoice <= 0.66 && computChoice > 0.33) {
computChoice = "paper";
} else {
computChoice = "rock";
}
if (UserChoice === "paper") {
if (UserChoice === "paper" && computChoice === "rock") {
window.alert("You chose paper and the computer chose rock! You win! Paper covers rock");
} else if (UserChoice === "paper" && computChoice === "paper") {
window.alert("It's a tie!");
} else if (UserChoice === "paper" && computChoice === "scissors") {
window.alert("You lose! You chose paper and computer chose scissors. Scissors cut paper!");
}
} else if (UserChoice === "scissors") {
if (UserChoice === "scissors" && computChoice === "paper") {
window.alert("You chose scissors and the computer chose paper! You win! Scissors cut paper.");
} else if (UserChoice === "scissors" && computChoice === "scissors") {
window.alert("It's a tie! You chose scissors and the computer chose scissors!");
} else if (UserChoice === "scissors" && computChoice === "rock") {
window.alert("You lose! You chose scissors and computer chose rock. Rock smashes scissors!");
}
} else if (UserChoice === "rock") {
if (UserChoice === "rock" && computChoice === "scissors") {
window.alert("You chose rock and the computer chose scissors! You win! Rock smashes scissors.");
} else if (UserChoice === "rock" && computChoice === "rock") {
window.alert("It's a tie! You chose rock and the computer chose rock!");
} else if (UserChoice === "scissors" && computChoice === "rock") {
window.alert("You lose! You chose rock and computer chose paper. Paper covers rock!");
} else {
window.prompt("Invalid choice! Choose from rock, paper, or scissors");
}
【问题讨论】:
-
在这段代码中,你忘记了最后一个 elseif 之后的括号
-
如果您已经签入了外部 if/else 条件,则无需再次检查 UserChoice === "rock"。
-
这个问题的答案可能会给你一些优化的想法:stackoverflow.com/questions/22623331/…,也可以:jsfiddle.net/h3TcP/4
标签: javascript if-statement nested conditional