2015-03-19 33 views
0

當我運行此我得到了以下錯誤:的javascript:if語句 - 預期轉讓或函數調用,而是看到了一個表達

Expected an assignment or function call and instead saw an expression.

var dealer1 = 8; 
var dealer2 = 4; 
var dealer3 = 6; 
var total2 = dealer1+dealer2+dealer3; 

if (total2 < 17) { 
    ANSWER = 'safe'; 
} 
else if (total2 = 21) { 
    ANSWER = 'black jack'; 
} 
else (total2 >= 17 && total2 < 21); { 
    ANSWER = 'stop'; 
} 

這是一個從這個未來:else (total2 >= 17 && total2 < 21)我無法弄清楚這有什麼問題! 這是不正確的?

+2

'Else'沒有條件。它只是涵蓋了你的'if'和'else if'沒有的所有其他可能性。 – 2015-03-19 11:26:12

回答

0

的問題是你最後的else語句,應該是沒有條件表達式:

else (total2 >= 17 && total2 < 21); { 
    ANSWER = 'stop'; 
} 

應該是寫爲:

else if(total2 >= 17 && total2 < 21){ 
    ANSWER = 'stop'; 
} 

或:

else{ 
    ANSWER = 'stop'; 
} 

視你想要什麼。

0

您在else之後省略了if

你也有(expression)

哦後的外來分號,而且也沒有分支的「蕭條」手時,total2 > 21

0

我可以在這裏看到了一些問題......

第一個「否則,如果」的代碼塊不檢查任何它的設置變量共2至21,所以如果代碼獲取到這一點,答案永遠是 '黑傑克' - 檢查你需要使用==或===(嚴格比較)

相反的價值...

else if (total2 = 21) { 
    ANSWER = 'black jack'; 
} 

使用...

else if (total2 == 21) { 
    ANSWER = 'black jack'; 
} 

的另一個問題是在這裏:

else (total2 >= 17 && total2 < 21); { 
    ANSWER = 'stop'; 
} 

正如其他人所指出 - 其他不使用分號,從而刪除。更重要的是,其他人沒有任何參數 - 當所有if和if都失敗時,這是最後一種情況。所以,你有兩個選擇......

取出參數,只是有一個else {...}像這樣:

else { 
    ANSWER = 'stop'; 
} 

或者,如果你確實需要檢查其他疾病時,將其更改爲另一個如果(...){...}像這樣(記住刪除該分號):

else if (total2 >= 17 && total2 < 21) { 
    ANSWER = 'stop'; 
} 

希望這會有所幫助。

相關問題