2011-11-27 23 views
0

我想我的代碼停止/停止/打破我把return;,我想它停止,我已經嘗試使用break如果有人可以幫助我,將不勝感激,我對JavaScript很新,所以如果我第一次沒有把事情做好,不要沮喪:D anyhelp會非常感激。我將如何停止我的代碼在小部分和我的if和else語句不工作

function InitAll() { 
    var name = prompt("What is your name?", ""); 
    document.write("Hello, " + name + " this is a little Javascript Activity!"); 
    var PromptAnswer = prompt("So, " + name + " do you like to play Soccer?", ""); 
    if (PromptAnswer == "yes" || "Yes" || "Yes!" || "yes!" || "yeah" || "yeah!" || "Yeah!") { 
     document.write("Cool, that's awesome, i play Soccer too!"); 
     var PromptAnswer2 = prompt("Well, even some people play Soccer and don't like it, do you like soccer?", ""); 
     if (PromptAnswer2 == "yes" || "Yes" || "Yes!" || "yes!" || "yeah" || "yeah!" || "Yeah!") { 
      document.write("Yeah, its pretty fun."); 
     } 
     if (PromptAnswer2 == "") { 
      return; 
     } 
     else { 
      document.write("Well, that's really too bad, but i guess if you don't like it, you dont like it. :D"); 
     } 
    } 
    else { 
     var PromptAnswer3 = prompt("Well, what sports do you like to play?", ""); 
     if (PromptAnswer3 == "football" || "Football") { 
      document.write("Haha yeah, football is pretty awesome, even though i'm a Javascript Script, my Creator can throw football pretty well. :D"); 
     } 
     else { 
      document.write(PromptAnswer3 + " is pretty cool."); 
     } 
    } 
} 

回答

2

你的代碼有幾個問題。

提示功能可以返回null所以你可能想改變這一點:

if (PromptAnswer2 == "") { 
     return; 

這樣:

if (!PromptAnswer2) { 
     return; 
    } 

return語句將完成該功能的執行,將控制權返回給無論什麼叫做功能。

這將檢查PromptAnswer2null,""undefined和其他幾件事。

其次,類似這樣的語句:

if (PromptAnswer == "yes" || "Yes" || "Yes!" || "yes!" || "yeah" || "yeah!" || "Yeah!") 

必須這樣寫:

if (PromptAnswer == "yes" || PromptAnswer == "Yes" || PromptAnswer == "Yes!" || PromptAnswer == "yes!" || PromptAnswer == "yeah" || PromptAnswer == "yeah!" || PromptAnswer == "Yeah!") 

或者甚至更好的去除不同情況的可能性:

PromptAnswer = PromptAnswer.toLowerCase(); 
if (PromptAnswer == "yes" || PromptAnswer == "yes!" || PromptAnswer == "yeah" || PromptAnswer == "yeah!") 

,或者使用正則表達式:

if (PromptAnswer.match(/^(yes|yeah)!?$/i)) 

第三,您可能想知道在滿載文檔上的document.write()將清除當前文檔並開始編寫新文檔。通常情況下,處理javascript的事件通常不會發生。

+0

+1,但我認爲它應該是'PromptAnswer2 ===「」' - 永遠不知道會發生什麼樣的野性轉換 –

+0

@AdamRackis - 我的推薦是'if(!PromptAnswer2)',因爲他們需要檢查也是null。 – jfriend00

+0

我的壞 - 它遲到了:) –

相關問題