繁体   English   中英

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

[英]Javascript promo code prompt - endless while loop

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

因此,我使用了这段代码...显然我在做错什么,因为浏览器即使在输入代码后仍会继续检查代码(最终页面崩溃)。 我试图休息; 最后,但没有提示。

我将不胜感激。

我想要做的就是摆脱这里无尽的循环。

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

问题是使用不当造成的while夹杂if 也许您应该考虑其他方法:

 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(); 

如果用户在if (secret != XX)行中键入任何数字, 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"); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM