2017-02-27 18 views
-2

我試圖讓我可以退出這個程序退出,即使有人進入EXIT ExIt,EXit等。我試着把它放在var輸入在字符串的開始和「} while」語句中的字符串結尾,並且它仍然無法正常工作。有誰知道我該把它放在哪裏?我在哪裏可以返回.toLowerCase();在這個程序,使它退出,即使我把EXIT

<!DOCTYPE html> 
<html> 
<head> 
<title>Project 1 – Michael Fiorello</title> 
</head> 
<body> 
<h1>Robot Speak</h1> 
<script> 
    do{ 
    var input = prompt ("Please enter 1, 2, 3, or exit.");{ 
    if (input == "1") 
     { 
      alert ("THANKS!") 
     } 
    else if (input == "2") 
     { 
     alert ("COOL!") 
     } 
    else if (input == "3") 
     { 
     alert ("AWESOME!") 
     } 
    else if (input == "exit") 
     { 
     alert ("Okay") 
     } 
    else 
     { 
     alert ("You need to enter something") 
     console.warn("You need to enter something"); 
     } 
     } 
     }while(input != "exit") 
</script> 
</body> 
</html> 
+3

可能想看的語言。 'var input =(prompt(「...」)||「」).toLowerCase()' – nnnnnn

回答

1
else if (input.toLowerCase() == "exit") 
{ 
    alert ("Okay") 
} 

正如在評論中指出,如果用戶取消提示,結果將是null。爲了趕上這種情況下,你應該測試這個值以及之前來我上面寫了一行:

if (input == null){ 
    handleCancel(); 
} 
... 
else if (input.toLowerCase() == "exit") 
{ 
    alert ("Okay") 
} 

如果你想「退出」並取消視爲程序終止的新聞,你開始測試該案例:

var goOn = true;

while(goOn){ 

    var input = prompt ("Please enter 1, 2, 3, or exit."); 
    if (input == null || input == "exit") 
    { 
     goOn = false; 
     // handle cancel 
    } 
    else if (input == "1") 
     { 
      alert ("THANKS!") 
     } 
    else if (input == "2") 
     { 
      alert ("COOL!") 
     } 
    else if (input == "3") 
     { 
      alert ("AWESOME!") 
     } 
} 
+0

如果用戶取消了提示,這會產生TypeError。此外,代碼中還有另一個測試「exit」的地方。 – nnnnnn

+0

的確如此,他只是詢問函數調用的位置。無論如何,我會更新答案 – Psi

+0

感謝您的幫助。問我的教授,如果他想在我修復那部分之前唯一的退出方式是輸入或不輸入。 – TheShadowGamer

0

toLowerCase()可以空檢查(即當提示被取消),並且當任何不區分大小寫的比較正在發生之後被調用。

爲了減少比較的數量,您也可以使用一個無限循環,並在遇到所需的響應時進行中斷。

您還添加了一個額外的不需要的塊,在提示後開始。這可能會被刪除。

while (true) { 
    var input = prompt("Please enter 1, 2, 3, or exit."); 
    if (input == null){ 
     // Handle failure to specify a value 
    } else if (input == "1") { 
     alert("THANKS!"); 
    } else if (input == "2") { 
     alert("COOL!"); 
    } else if (input == "3") { 
     alert("AWESOME!"); 
    } else if (input.toLowerCase() == "exit") { 
     alert("Okay"); 
     break; 
    } else { 
     alert("something else"); 
     console.warn("You need to enter something"); 
    } 
} 
+0

這也會有一個錯誤,如果用戶取消提示。此外,它總是會調用toCupCase,這是一個開銷,當大部分數字都是預期的時候。無需每次都打電話給我... – Psi

+0

@Psi謝謝。我已經更新以解釋這一點。 –

+0

觀看褻瀆。閱讀[「保持良好」](http://stackoverflow.com/help/be-nice)政策。 –

相關問題