Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2019, 20:47
Новичок на форуме
Отправить личное сообщение для Pashok11 Посмотреть профиль Найти все сообщения от Pashok11
 
Регистрация: 15.05.2019
Сообщений: 1

Проверка числа на неправильность и NaN
Пишу небольшой JS код в целях обучения подобного вида:

Написал что-то вот такое:
var someThing=prompt("someThing (1-12):","");
var someThingMath;

mainCheck: while(true) {
if(someThing>=1&&someThing<=12) {
  someThingMath=someThing-1;
  break;
}
else {
  if(someThing<1&&someThing>12){
    if (someThing<1) {
      someThing=prompt("Вы ввели число меньше заданного. Пожалуйста, повторите попытку.\n\nsomeThing (1-12):","");
      continue mainCheck;
    }
    else {
      someThing=prompt("Вы ввели число больше заданного. Пожалуйста, повторите попытку.\n\nsomeThing (1-12):","");
      continue mainCheck;
    }
  }
  else {
    var someThingIsNaN=isNaN(Number(someThing));
    if (someThingIsNaN == true) {
      someThing=prompt("Вы ввели не число. Пожалуйста, повторите попытку.\n\nsomeThing (1-12):","");
      continue mainCheck;
    }
  }
}}


но оно зависает, если ввести какое-либо число меньше 1 или больше 12 (в других случаях всё проходит нормально).

Поискал что-то подобное в интернете - но не нашёл (может плохо искал).
Как можно сделать что-то подобное в адекватном виде?
(если не сложно, напишите сразу код)
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2019, 22:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Pashok11,
var someThing=prompt("someThing (1-12):","");
var someThingMath;

mainCheck: while(true) {
var someThingIsNaN = isNaN(Number(someThing));
if (someThingIsNaN || someThing === "" || someThing === null) {
            someThing=prompt("Вы ввели не число. Пожалуйста, повторите попытку.\n\nsomeThing (1-12):","");
            continue mainCheck;
}

if(+someThing>=1&&+someThing<=12) {
    someThingMath=someThing-1;
    break;}

if (+someThing<1) {
            someThing=prompt("Вы ввели число меньше заданного. Пожалуйста, повторите попытку.\n\nsomeThing (1-12):","");
            continue mainCheck;
        }
else {
            someThing=prompt("Вы ввели число больше заданного. Пожалуйста, повторите попытку.\n\nsomeThing (1-12):","");
            continue mainCheck;
}


}
alert(someThingMath);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить массив на NaN MC-XOBAHCK Общие вопросы Javascript 6 11.09.2018 21:09
JS задача. Взаимно простые числа sashok Общие вопросы Javascript 5 23.11.2014 10:16
Есть числа от (0 до 100) что бы все эти числа были заменины в итоге например 110 impi Общие вопросы Javascript 4 08.10.2014 08:30
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Опыты с NaN. В чём прикол. ILL-JAH Общие вопросы Javascript 10 05.04.2011 20:58