2013-12-19 57 views
0

由於某些原因,即使未滿足條件,也會提示用戶回答。即使條件爲假,if語句中的代碼也會運行

function makePurchase() 
{ 
    if (locationName !== "SpacePort"){alert("You are not at the SpacePort.S")} 
    if (locationName === "SpacePort");{ 
     userBuys= prompt(userName + ". "+"What do you purchase? Lasers, Sensors, or Repair Ship."); 
     {if(userBuys === "Lasers" && credits>=1000){lasers+10; credits-1000; alert("You have purchased lasers.")}; 
     if(userBuys === "Sensors"){};if(userBuys === "Repair Ship"){shipDamage=0}} 
    } 
} 
+2

您是否對代碼中的空白位置過敏? –

+4

這個問題似乎是脫離主題,因爲它是由於一個錯字。 – Barmar

+0

當保存代碼時,我已將空白區域設置爲剝離 – jordansinn

回答

4
if (locationName === "SpacePort"); 

存在不應該有一個分號...

分號表示了「if語句的結束」。以下{}中的代碼與if沒有關聯。省略分號,它將按預期行事。

正如在上面的評論中提到的,良好的代碼格式(包括回車符,縮進等)可以幫助防止這些類型的錯誤。一旦將代碼發送到廣闊的世界中,壓縮代碼是一回事,但在您仍在擺弄時,給自己留出空間,長變量名稱和一致的縮進。你的代碼越複雜,你希望你做的越多。

+0

感謝您的快速回復,因爲您的建議,問題現已解決。 – jordansinn

+0

關於前3的投票呢? – Phlume

2

那是因爲你正在關閉if條件,刪除;

更換

if (locationName === "SpacePort");

if (locationName === "SpacePort") 
+0

感謝您的快速回復。 – jordansinn

1

if語句後刪除分號:

if (locationName === "SpacePort"); 

應該

if (locationName === "SpacePort") 

`

+0

這裏有回聲嗎?爲什麼有人會贊同與之前的三個答案重複的答案? – Barmar

+0

感謝您的快速回復。 – jordansinn

2

有一個錯字。你的if語句在locationName ===「SpacePort」之後有一個分號。應該是:

function makePurchase() 
{ 
    if (locationName !== "SpacePort"){alert("You are not at the SpacePort.S")} 
    if (locationName === "SpacePort"){ 
     userBuys= prompt(userName + ". "+"What do you purchase? Lasers, Sensors, or Repair Ship."); 
     {if(userBuys === "Lasers" && credits>=1000){lasers+10; credits-1000; alert("You have purchased lasers.")}; 
     if(userBuys === "Sensors"){};if(userBuys === "Repair Ship"){shipDamage=0}} 
    } 
} 
相關問題