首页 > 解决方案 > 让变量发出

问题描述

我使用let 变量是因为我想在 do-while 循环中访问Mistake 的变量。

我的主要目标是在 Mistake 为true时重复此循环。

然而,当 Mistake 为并离开语句时,它显示Mistake 未定义,我不明白为什么,因为我的let 变量存在于这个循环中。

我的代码

function CheckError()
{
   do
   {
     let Mistake = false;
        
     let Number = prompt("Choose a number between 1 - 4");
     Number = parseInt(Number);

     if(Number < 1 || Number > 4)
     {
        Mistake = true;
      }
   }while(Mistake == true);
}

CheckError();

标签: javascript

解决方案


问题是 const 和 let 仅在它们定义的范围内可用,一种简单的描绘方式是,只要你有这个括号 {},并且里面有一个 const 或 let,它们在括号。

因此,您必须将其定义更高一级,如下所示:

function CheckError()
{
  let Mistake;
  do
  {
    Mistake = false;
    
    let Number = prompt("Choose a number between 1 - 4");
    Number = parseInt(Number);

    if(Number < 1 || Number > 4)
    {
      Mistake = true;
    }
  } while(Mistake == true);
}

CheckError();

PS。请确保在循环中仍然将错误设置为false,否则一旦出错就会陷入循环。


推荐阅读