проверка и зацикливание JavaScript - PullRequest
1 голос
/ 24 апреля 2019

Мне нужно проверить вывод пользователя для трех разных запросов и подумал, что это будет работать, но это не так.

В первую очередь необходимо подтвердить любой из 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"); 
                }

1 Ответ

0 голосов
/ 24 апреля 2019

Я не могу говорить с вашей более крупной проблемой, но я скажу вам, что всякий раз, когда я использую цикл while, я всегда программирую в отказоустойчивом.Я обычно называю их safetyValve.Это удерживает систему от бесконечного зацикливания и сбоя.Это выглядит примерно так:

var myCondition = true;
var safetyValve = 0;
var safetyMax = 10000;
while (myCondition && safetyValve < safetyMax) {
  ...
  safetyValve++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...