[英]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.