【问题标题】:validating and looping javascript验证和循环javascript
【发布时间】:2019-09-13 07:07:19
【问题描述】:

我需要验证三个不同提示的用户输出,并认为这可行,但事实并非如此。

第一个提示需要验证澳大利亚的 8 个州和地区中的任何一个。

第二个提示需要验证用户输入了一个整数。

第三个提示需要验证用户输入了一个负数或正数,可以是整数也可以是小数。

然后整个事情需要再次循环,以便再次询问三个提示。所以它可以建一个表。

        function ask() {
          var stInput = '';
          var populationInput = '';
          var changeInput = '';

          var entering = confirm('Confirm to add state or territory');
          if (!entering) {
            return;
            } else {
              while (true) {
                stInput = prompt('Enter state or territory');
                    function validateUserChoice(stInput) {
                if (stInput !== "Queensland" && stInput !== "New South Wales" && stInput !== "Victoria" && stInput !== "Tasmania" && stInput !== "Northern Territory" && stInput !== "Western Australia" && stInput !== "South Australia" && stInput !== "Australian Capital Territory") {

                   } else {
                    return false;
                   }
               }
                populationInput = prompt('Enter population for ' + stInput + '');

                while(!isValid(populationInput)) {
                alert('Your input was invalid');
                populationInput = parseInt(prompt('Enter population for ' + stInput + ''));
                }
                changeInput = prompt('Enter growth rate for ' + populationInput + '');

                while(!isValid(changeInput)) {
                alert('Your input was invalid');
                changeInput = parseFloat(prompt('Enter growth rate for ' + populationInput + ''));
                }
                    break;
                }
                 alert("invalid state or territory"); 
                }

【问题讨论】:

  • 使用while 循环几乎不是一个好主意。如果您想在有人单击按钮时运行代码,您应该查看事件侦听器和触发事件。当有人单击提交按钮时,您应该运行一个验证您的表单的函数。而不是运行while (true) 循环来获取任何更改。
  • 是的,@DavidKlinge 说的。 Use this
  • 是的,感谢您的反馈@DavidKlinge。但这与家庭作业有关,它需要我们到目前为止所学的知识,而我们还没有学习事件监听器。所以我必须使用while循环。
  • @ArkinSolomon ^

标签: javascript loops validation while-loop


【解决方案1】:

我不能谈论你更大的问题,但我会告诉你,任何时候我使用while 循环,我总是在故障安全中编程。我通常称他们为safetyValve。它可以防止系统陷入无限循环并崩溃。有点像:

var myCondition = true;
var safetyValve = 0;
var safetyMax = 10000;
while (myCondition && safetyValve < safetyMax) {
  ...
  safetyValve++;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2012-10-09
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    相关资源
    最近更新 更多