用于使用户输入值的JavaScript if / else语句

时间:2017-09-10 02:16:33

标签: javascript loops if-statement

如何将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");
}

我试图让它回到开头让用户输入信息。

4 个答案:

答案 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的建议会产生以下示例:

&#13;
&#13;
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;
&#13;
&#13;

它会一直循环,直到您键入有效的数字答案。我还在检查中添加了一个检查,看看用户是否输入了21岁以下的年龄,因为我猜你不想在用户未满21岁的情况下永远保持循环(或者保持循环直到他们年满21岁)但如果你愿意,可以很容易地删除那部分。