Javascript促销代码提示 - 无尽的循环

时间:2017-05-10 16:07:18

标签: javascript

我们正在使用促销代码来允许用户访问网页。它不必是安全的 - 只是试图给客户一个代码提示,使他们感到特别。

所以我使用了这段代码......显然我做错了,因为浏览器在进入代码后仍然会检查代码(并最终导致页面崩溃)。我试过休息;最后,然后提示没有发生。

我很感激任何帮助。

我想做的就是摆脱无限循环。



var secret;

while (secret !== "1")
  if (secret !== "2")
    if (secret !== "3")
      if (secret !== "4") {
        secret = prompt("What is the secret password?");
      };




2 个答案:

答案 0 :(得分:4)

问题是whileif混合使用不当。也许你应该考虑另一种方法:



var askSecret = function askSecret() {
    var secret = prompt("What is the secret password?");
    if(secret !== "theSecret") { askSecret(); }
};
    
askSecret();




编辑:多个密码/密码

在前面的示例中,唯一有效的密码/密码是" thesecret"。如果您需要多个密码/密码,则必须使用AND &&运算符扩展条件:



var askSecret = function askSecret() {
    var secret = prompt("What is the secret password?");
    if(
        secret !== "theSecret"
    &&  secret !== "TheOtherSecret"
    &&  secret !== "TheThirdValidSecret"
    )
    {
        askSecret();
    }
};
    
askSecret();




答案 1 :(得分:1)

如果用户输入if (secret != XX)行中的任何数字,您的代码将进入无限循环。这是因为满足while条件,但if条件失败,因此它跳过prompt()函数并重复while。由于这不会改变answer,所以它会一遍又一遍地这样做。

如果您想检查多个可能的答案,请在while声明中执行所有操作:



var secret;
while (secret != "1" && secret != "2" && secret != "3" && secret != "4") {
  secret = prompt("What is the secret password");
}