不使用提示执行while循环。Javascript

不使用提示执行while循环。Javascript,javascript,do-while,prompt,Javascript,Do While,Prompt,我正在用JS-Bin网站写这篇文章 当我给出错误(数字)输入时,循环只触发一次: 函数isInputLeapYear() { 风险值年份=-1; var inputOk=true; 做{ 年份=提示(“请输入年份以检查是否为闰年\n输入介于0-9999之间的年份”); 如果(年份

我正在用JS-Bin网站写这篇文章

当我给出错误(数字)输入时,循环只触发一次:

函数isInputLeapYear()
{
风险值年份=-1;
var inputOk=true;
做{
年份=提示(“请输入年份以检查是否为闰年\n输入介于0-9999之间的年份”);
如果(年份<0 | | 9999
将var
inoutOK=true
移动到循环中,在再次提示之前重置

function isInputLeapYear()
{
   var year = -1;

   do {
       var inputOk = true;
       year = prompt("Please enter a year to check if it is a leap year \ninput year between 0-9999");

       if(year < 0 || 9999 < year) // check input
       {
          inputOk = false;
          alert("\""+year+"\" is not a good year. \nThe input needs to be between 0-9999");              
       };


    } while(inputOk === false);


  ....
}
函数isInputLeapYear()
{
风险值年份=-1;
做{
var inputOk=true;
年份=提示(“请输入年份以检查是否为闰年\n输入介于0-9999之间的年份”);
如果(年份<0 | | 9999
函数的
提示符
返回的是
字符串
,而不是
数字
。您可以看看这个函数。您需要添加一个
else{inputOk=true;}
,否则您的代码对我来说运行良好。@DarinDimitrov是对的。使用parseInt函数。year=parseInt(input)。@DarinDimitrov它可能返回一个字符串,但是当字符串与带有
的数字进行比较时,同时按照@DarinDimitrov的建议显式转换为数字会很好,这不是问题<代码>代码转储不是有用的答案。说出你改变了什么,以及为什么。@T.J.Crowder感谢你不知道。我编辑了答案。代码转储不是有用的答案。说说你做了什么,为什么。(并合理地格式化代码。)还要注意,您已更改了范围。您不能将
year<0
更改为
year>0
来反转该条件。现在是
年>=0
function isInputLeapYear()
{
   var year = -1;

   do {
       var inputOk = true;
       year = prompt("Please enter a year to check if it is a leap year \ninput year between 0-9999");

       if(year < 0 || 9999 < year) // check input
       {
          inputOk = false;
          alert("\""+year+"\" is not a good year. \nThe input needs to be between 0-9999");              
       };


    } while(inputOk === false);


  ....
}
    function isInputLeapYear()
    {
        var year = -1;

        var inputOk = false;

        do{
           year = prompt("Please enter a year to check if it is a leap year \ninput year between 0-9999");

           if(year > 0 && 9999 > year) // check input
           {
             inputOk = True;



           else
{
alert("\""+year+"\" is not a good year. \nThe input needs to be between 0-9999"); 
}  
           };


        }while(inputOk === false);


      ....
    }