Проверка числа на неправильность и 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, время: 01:02. |