如何将if
/ else
语句循环回到开头以获取用户信息?
这是我到目前为止的代码:
var age = prompt("Please enter your age");
if(age == 21 ) {
alert("Happy 21st Birthday!");
} else if (age > 21 ) {
alert("You are old");
} else {
alert("Please enter an age");
}
我试图让它回到开头让用户输入信息。
答案 0 :(得分:4)
var age = '';
while(age == '' || age == 'ok'){
age = prompt("Please enter your age");
if($.isNumeric(age) === false){
continue;
}
if(age == 21 ){
alert("Happy 21st Birthday!");
continue;
}
if (age > 21 ){
alert("You are old");
continue;
}
if (age < 21){
alert("You are too young to be in this bar!");
}
}
答案 1 :(得分:0)
for (let age = prompt('Please enter your age'); ;) {
if (age == 21) {
alert('Happy 21st Birthday!');
break;
} else if (age > 21) {
alert('You are old');
break;
} else {
age = prompt('Please enter your age');
}
}
答案 2 :(得分:0)
您将验证逻辑与用户输入逻辑分开。
如果这是控制台应用程序,那么你会在提示符周围放置一个循环,然后验证用户年龄,如果年龄有效,则跳出循环,否则让循环继续。
在网页上,您可以将其包装在一个函数中,并根据结果根据年龄是否正确来操纵视图。因此,如果年龄无效,您可能会显示错误消息;如果年龄有效,则可能会转到下一页。
你应该将构成验证逻辑的if语句包装成一个函数,也许是validateAge,返回true或false,这样无论你实现什么,你都可以使用相同的方法。
答案 3 :(得分:0)
使用while
循环解决@ wallyk的建议会产生以下示例:
var age = false;
while (!age) {
age = prompt("Please enter your age");
if (age == 21) {
alert("Happy 21st Birthday!");
} else if (age > 21) {
alert("You are old");
} else if (!!age && age < 21) {
alert("You are young");
} else {
alert("Please enter an age");
age = false;
}
}
&#13;
它会一直循环,直到您键入有效的数字答案。我还在检查中添加了一个检查,看看用户是否输入了21岁以下的年龄,因为我猜你不想在用户未满21岁的情况下永远保持循环(或者保持循环直到他们年满21岁)但如果你愿意,可以很容易地删除那部分。