Проверка числа на неправильность и 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 (в других случаях всё проходит нормально). Поискал что-то подобное в интернете - но не нашёл (может плохо искал). Как можно сделать что-то подобное в адекватном виде? (если не сложно, напишите сразу код) |
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); |
Часовой пояс GMT +3, время: 17:31. |