Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有什么方法可以循环这个吗?_Javascript_Loops - Fatal编程技术网

Javascript 有什么方法可以循环这个吗?

Javascript 有什么方法可以循环这个吗?,javascript,loops,Javascript,Loops,我如何编写一个循环,记录所有的数字,直到它在8点击中“乐透”,当它这样做时,它也会记录console.logs 8,但它会停止在那里?代码如下: var randomNumber = Math.floor(Math.random() * 10); function lottery() { if (randomNumber === 8) { return randomNumber + ": Congratulations! You won!"; } else { return r

我如何编写一个循环,记录所有的数字,直到它在8点击中“乐透”,当它这样做时,它也会记录console.logs 8,但它会停止在那里?代码如下:

var randomNumber = Math.floor(Math.random() * 10);

function lottery() {
if (randomNumber === 8) {
    return randomNumber + ": Congratulations! You won!";
} else {
    return randomNumber + ": Sorry! No prize this time.";
}
};

我试了好几次做了一个for循环,但它似乎并没有像我希望的那样运行。

你的意思是你只是想不断地生成一个新的随机数,直到它等于8

let=false;
函数{
让randomNumber=Math.floor(Math.random()*10);
如果(随机数===8){
正确的=正确的;
return randomNumber+“:祝贺你!你赢了!”;
}否则{
return randomNumber+“:对不起!这次没有奖品。”;
}
}
而{
log(彩票());
}

我试过这段代码,效果很好。

也许这能帮到你

function lottery(winningNumber) {
  var won = false;
  while (!won) {
    var randomNumber = Math.floor(Math.random() * 10);
    if (randomNumber == winningNumber) {
      console.log(randomNumber + ": Congratulations! You won!");
      won = true;
    } else {
      console.log(randomNumber + ": Sorry! No prize this time.");
    }
  }
}
lottery(8);

您可以使用新号码再次调用函数。下面的代码递归调用抽奖,为randomNumber分配一个新的数字并对其进行测试

function lottery() {
var randomNumber = Math.floor(Math.random() * 10);
if (randomNumber === 8) {
    console.log(randomNumber + ": Congratulations! You won!");
    return randomNumber + ": Congratulations! You won!";
} else {
    console.log(randomNumber + ": Sorry! No prize this time.");
    randomNumber = Math.floor(Math.random() * 10);
    lottery()
    return

}
}

代码中的循环在哪里?@Balastrong不,我没有做循环,因为我不知道该放什么。正如我在顶部所解释的,我如何编写这个代码,让它通过console.log记录所有随机数,直到它达到lotto/8?那么这不是StackOverflow的工作方式。你应该先试着写你的代码,然后你可以问如果你不成功为什么它不起作用。让我们来看看a是如何工作的。如果有人只是给你代码,你不会学到太多。@emilmooe我相信你可以使用setInterval()方法,并在其中生成随机数并检查你的条件,如果达到了条件,则使用clearInterval()停止执行。@Balastrong是的,我理解。。一般来说,我只是在与循环作斗争,我认为for循环适合于这段代码,但我无法理解我应该在循环中包含什么,或者我是否需要一个循环。但是谢谢你的链接!:)函数不应该在循环内定义。我为您做了一些修改。下面是代码<代码>设为=假;函数抽奖(randomNumber){if(randomNumber==8){lottoFinished=true;return randomNumber+“:恭喜!你赢了!”}else{return randomNumber+“:抱歉!这次没有奖。”;}}}而(!lottoFinished){let randomNumber=Math.floor(Math.random()*10);console.log(抽奖(随机数);}