[英]Build “rock, paper, scissors” in JavaScript
這是代碼。 建造“石頭,紙,剪刀”
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
}
else if(computerChoice <= 0.67) {
computerChoice = "paper";
}
else {
computerChoice = "scissors";
}
console.log("Computer: " + computerChoice);
var compare = function(choice1,choice2) {
if (choice1 === choice2) {
return "The result is a tie!"
}
else if (choice1 === "rock") {
if (choice2 === "scissors") {
return "rock wins"
}
else {
return "paper wins"
}
} compare(userChoice,computerChoice); //I forget to add it. Now I add it.
我不明白為什么需要添加else { return "paper wins" }
===
運算符是javascript中的嚴格相等運算符。 有問題的if
語句正在對choice1
和字符串文字"rock"
。 如果該答案為true,則執行下一個if
語句,程序檢查一下choice2
等於"scissors"
。 如果這個說法是正確的,那么它將返回"rock wins"
因為眾所周知,搖滾勝過剪刀。
如果choice1
是"rock"
,並choice2
不是( else
) "scissors"
,然后choice2
可能要么被"paper"
或"rock"
。 由於沒有平局, choice2
不能是"rock"
,所以choice2
是"paper"
,而"paper"
勝過"rock"
,因此"paper wins"
。
編輯
由於return
語句會在以下情況下立即退出函數
if (choice2 === "scissors") {
return "rock wins" // <-- quit the function
}
// <-- if you got here it is not true that (choice2 === "scissors")
return "paper wins"
這意味着你可以避開else
,只是return "paper wins"
我不明白為什么需要添加else {return“ paper wins”}
這是因為您對此游戲有3種不同的情況(假設我選擇搖滾):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.