Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当某个条件的答案不可接受时,如何为提示创建循环?_Javascript_Loops_While Loop_Prompt_Confirm - Fatal编程技术网

Javascript 当某个条件的答案不可接受时,如何为提示创建循环?

Javascript 当某个条件的答案不可接受时,如何为提示创建循环?,javascript,loops,while-loop,prompt,confirm,Javascript,Loops,While Loop,Prompt,Confirm,所以我一直在做一个密码生成器,除了两件事之外,我还有它的工作。密码长度必须在8-128个字符之间。我有一个提示,询问用户希望密码的长度,然后还有一些其他提示,包括符号、大写、小写和数字。但是,当用户回答低于8或高于128的任何问题时,我希望警告说“密码长度必须至少为8个字符且短于128”,然后返回提示,再次询问他们希望密码的长度 我一辈子都不知道该怎么做。对我来说,最明显的解决方案是一个while循环,但是我没有构建这些循环的经验 我还希望在“确认”系统结束之前至少选择一种字符类型,并循环回确认

所以我一直在做一个密码生成器,除了两件事之外,我还有它的工作。密码长度必须在8-128个字符之间。我有一个提示,询问用户希望密码的长度,然后还有一些其他提示,包括符号、大写、小写和数字。但是,当用户回答低于8或高于128的任何问题时,我希望警告说“密码长度必须至少为8个字符且短于128”,然后返回提示,再次询问他们希望密码的长度

我一辈子都不知道该怎么做。对我来说,最明显的解决方案是一个while循环,但是我没有构建这些循环的经验

我还希望在“确认”系统结束之前至少选择一种字符类型,并循环回确认的开头,以确定大写、小写、符号和数字,因此用户必须至少选择一种

任何帮助都将不胜感激

谢谢大家!

下面是密码长度的代码

var passLength;

while (passLength >= 129 || passLength <= 7) {
  passLength = parseInt(prompt('How many charcters would you like? (8-128)'))
    if (passLength <= 128 || passLength >= 8) {
        break;
    }
  alert("Password length must be 8 to 128 characters long!");
}

您的长度检查有错误。在这种情况下,您不能使用
|
,因为您希望检查下限和上限是否都有效,因此
&&

对于问题循环,您可以使用
while(true)
循环,一旦您完成了问题,即案例中的配置,您就可以
中断

我使用一个对象以默认值存储配置值。也可以使用数组。但是,您必须以某种方式管理索引

const TYPE\u NUMBER=0;
const TYPE_BOOLEAN=1;
常量类型_字符串=2;
常量配置={
蓝:8,
upc:错,
洛克:错,
num:错,
赛姆:错
};
while(true){
const len=ask('您想要多少个字符?(8-128)',键入\ u编号);
如果(len=8){
config.len=len;break;
}否则{
警报(“密码长度必须为8到128个字符!”);
}
}
const upc=ask('您想使用大写字母吗?',键入布尔值);
如果(upc){config.upc=upc;}
// ... 对其他问题重复相同的步骤。。。
console.log(config);
函数询问(消息,类型){
让结果;
if(type==type\u BOOLEAN){
结果=确认(msg);
}else if(类型===类型编号){
结果=parseInt(提示符(msg));
}else if(type==type\u字符串){
结果=提示(msg);
}否则{
结果=”;
}
返回结果;
}
var chosenCharactersArr = []
var passwordstring = ''

if (confirm('would you like Capital letters?')) {
  chosenCharactersArr.push(upperCase)
}

if (confirm('would you like to include lowercase letters?')) {
  chosenCharactersArr.push(lowerCase)
}

if (confirm('would you like to include numbers?')) {
  chosenCharactersArr.push(numbers)
}

if (confirm('would you like to include symbols?')) {
  chosenCharactersArr.push(symbols)
}