Почему null не работает должным образом в while-l oop? - PullRequest
0 голосов
/ 07 мая 2020

var age = "";
while( (age == "") || (age != null) && || isNaN(age)) {
    age = prompt("How old are you?");
}
if (age <= 14){
    alert("You're too young!");
} else if (age >= 15) {
    alert("Welcome on board!");
}

Мне не разрешено использовать функции для этого упражнения, и я не могу понять, почему в подсказке появляется You're too young, когда я нажимаю «Отмена». Я знаю, что для решения этой проблемы мне следует использовать функции, но меня просили не делать этого.

            var age = "";
while( (age == "") || (age != null) && || isNaN(age)) {
    age = prompt("How old are you?");
}
if (age <= 14){
    alert("You're too young!");
} else if (age >= 15) {
    alert("Welcome on board!");
}

1 Ответ

0 голосов
/ 07 мая 2020

Я бы использовал do-while, чтобы сначала получить допустимое значение, вместо того, чтобы начинать с "", а затем использовал parseInt, чтобы всегда получать число (или NaN в случае неудачного анализа)

var age;
do
{
  age = parseInt(prompt("How old are you?"), 10);
} while (isNaN(age))

if (age <= 14) {
  alert("You're too young!");
}
else if (age >= 15) {
  alert("Welcome on board!");
}
...