2015-02-07 26 views
-2

我得到的錯誤「語法錯誤:意外標記{」,我不知道爲什麼,因爲一切都很似乎很正確!你可以幫幫我嗎 ?語法錯誤:意外標記{在剪刀石頭布

var userChoice = prompt("Choose: rock, paper or scissors?"); 

var computerChoice = Math.random(); 

if(computerChoice >= 0 && computerChoice <= 0.33){ 
    computerChoice === "rock"; 
} 

else if (computerChoice >= 0.34 && computerChoice <= 0.66){ 
    computerChoice === "paper"; 
} 

else (computerChoice >= 0.67 && computerChoice <= 1){ 
    computerChoice === "scissors"; 
} 
+0

你需要把所有到一個函數 – Typo 2015-02-07 01:12:21

+3

你錯過了最後'else'後'if'。 – 2015-02-07 01:12:31

+0

謝謝@Typo! =] – 2015-02-07 01:14:16

回答

0

你的else塊有條件。這沒有意義。其他塊應該可以捕獲所有其他情況,所以不需要條件。這就是爲什麼它期望一個大括號。

要麼消除狀況或將其轉換爲一個else if塊。

else { 
    computerChoice === "scissors"; 
} 

或者

else if (computerChoice >= 0.67 && computerChoice <= 1){ 
    computerChoice === "scissors"; 
} 

此外,你應該使用=進行分配。 ===comparison operator

computerChoice = "scissors"; 

另外,computerChoice是先分配一個數字,然後是一個字符串。這是有風險的。 JavaScript允許它,因爲它是dynamic language,但使用不同的變量可能會更好,以避免混淆。最後,我們有:

var userChoice = prompt("Choose: rock, paper or scissors?"); 
var computerChoice = "not selected";  
var rand = Math.random(); 

if(rand >= 0 && rand<= 0.33){ 
    computerChoice = "rock"; 
} 

else if (rand >= 0.34 && rand <= 0.66){ 
    computerChoice = "paper"; 
} 

else { 
    computerChoice = "scissors"; 
} 
+0

謝謝你,所有的解釋讓你變得更容易! – 2015-02-07 01:25:22

0

是的,這是語法錯誤。
其他運行時所有的評估是falsey。所以別人不接受條件。
如果你想要的程序,以評估更病症使用否則,如果

if(computerChoice >= 0 && computerChoice <= 0.33){ 
    computerChoice === "rock"; 
} 

else if (computerChoice >= 0.34 && computerChoice <= 0.66){ 
    computerChoice === "paper"; 
} 

else(){ 
    computerChoice === "scissors"; 
}