2016-06-29 82 views
-1

我做的石頭,剪子,布上Codecademy網站JavaScript類,語法錯誤:意外標記{

我卡上的模塊之一,不斷收到「語法錯誤:意外的標記{」

這真的很奇怪!提示將不會運行,除非我刪除所有大括號({})....但我需要花括號在if/else if/else語句中。

如果我刪除第一個{,則出現錯誤消息: 「SyntaxError:Unexpected token}」。所以它只是注意到下一個大括號。

這裏是我的代碼:

var userChoice = prompt("Do you choose rock, paper or scissors?"); 

var computerChoice = Math.random(); 

//All curly brackets are below this point 

if (computerChoice >0, computerChoice <= .33) { 
    computerChoice = rock; 
} else if (computerChoice > .33, computerChoice < .66) { 
    computerChoice = paper; 
} else (computerChoice => .66, computerChoice <= 1) { 
    computerChoice = scissors; 
} 
+1

看看產生錯誤的代碼行。 – AD7six

+0

無關:我強烈懷疑你的條件如你所期望的那樣工作。只有最後一個實際上是「使用」 –

+1

*但是我需要在if/else if/else語句中使用大括號*實際上,您不需要。此外,只是好奇,但這個語法'if(condition1,condition2)',你是否在某處學習過,或者只是猜測它?爲什麼你要檢查'> 0',什麼時候會一直存在?在下一個條件中,當你已經知道它是什麼時,爲什麼你要檢查'> 0.33'?爲什麼你明顯總是在檢查「<= 1」? –

回答

3

請勿使用逗號分隔條件,請使用&&。另外,由於不需要最後的else if,只需刪除條件,因爲它是不必要的(Math.random()不會超過1)。最後,除非rockpaperscissors在別處定義的,你需要讓他們的字符串:

var userChoice = prompt("Do you choose rock, paper or scissors?"); 

var computerChoice = Math.random(); 

//All curly brackets are below this point 

if (computerChoice <= .33) { 
    computerChoice = "rock"; 
} else if (computerChoice < .66) { 
    computerChoice = "paper"; 
} else { 
    computerChoice = "scissors"; 
} 
+0

只要你正在修復代碼,爲什麼不刪除不必要的'> .33'檢查? –

+0

@torazaburo真的,謝謝你的追捕 –

+0

@ A.J。感謝您展示我正在嘗試做的正確版本,我還要在我的搖滾,紙張和剪刀弦上放一些「引號」。 –

3

你錯過了最後else if子句中的if。 (雖然在這種情況下,AJ正確地指出,沒有進一步的比較是必要的;如果你把它到最後else,則條件必須持有。)

而且比較的對需要由&&不是逗號分隔。

在此:

else (computerChoice => .66, computerChoice <= 1) { 

括號表達式被視爲簡單表達式語句。發生語法錯誤是因爲它沒有後面跟一個分號,所以懸掛{對解析器沒有意義。

2

你不使用,結合的條件,但隨着條件的運營商。另外,您不能爲else語句添加條件。使用以下內容:

var userChoice = prompt("Do you choose rock, paper or scissors?"); 

var computerChoice = Math.random(); 

//All curly brackets are below this point 

if (computerChoice >0 && computerChoice <= .33) { 
    computerChoice = rock; 
} else if (computerChoice > .33 && computerChoice < .66) { 
    computerChoice = paper; 
} else { 
    computerChoice = scissors; 
} 
1

使用三元運算符來節省自己的精神痛苦。

computerChoice = computerChoice < 1/3 ? rock : computerChoice < 2/3 ? paper : scissors; 
+0

我需要使用ternary更多 –

+0

@torazaburo感謝您的銳利編輯和簡單的解決方案。 –