简单while问题(javascript)

简单while问题(javascript),javascript,Javascript,有谁能解释一下为什么我不能停下来启动这个循环 <input type="button" value="start" onclick="start()"> <input type="reset" value="stop" onClick="stop()"> var startLottery = false; while(startLottery){ setInterval(function(){automateLottery()},120); startLotter

有谁能解释一下为什么我不能停下来启动这个循环

 <input type="button" value="start" onclick="start()">
 <input type="reset" value="stop" onClick="stop()">

var startLottery = false;

while(startLottery){
setInterval(function(){automateLottery()},120);
startLottery;
};

var start = function(){
startLottery = true;    
};

var stop = function(){
startLottery = false;   
};

var Studottery=假;
while(惊吓){
setInterval(function(){automateLottery()},120);
惊吓;
};
var start=function(){
惊愕=真实;
};
var stop=函数(){
惊吓=虚假;
};

谢谢

问题1

只有当操作数的计算结果为
true
时,才会执行
while
循环

但是,您首先使用的
startOttery
变量等于
false

因此,
while
循环将永远不会执行

问题2


您在任何时候都没有实际更改
startottery
变量的值,因此即使循环执行了,它也不会终止。

问题1

只有当操作数的计算结果为
true
时,才会执行
while
循环

但是,您首先使用的
startOttery
变量等于
false

因此,
while
循环将永远不会执行

问题2


在任何情况下,您都不会实际更改
startOttery
变量的值,因此即使循环执行了,它也不会终止。

您无法启动和停止这样的循环。您需要使用
setInterval
clearInterval

JS:

HTML:

<input type="button" value="start" onclick="start()">
<input type="reset" value="stop" onClick="stop()">


编辑:。

您不能启动和停止这样的循环。您需要使用
setInterval
clearInterval

JS:

HTML:

<input type="button" value="start" onclick="start()">
<input type="reset" value="stop" onClick="stop()">


编辑:。

我相信您正在寻找此功能(假设您确实有一个
automateLottery
功能):


我相信您正在寻找此功能(假设您确实有一个
automateLottery
功能):



如果您为代码提供的内容与我看到的完全相同,则永远不会进入
while
循环。页面将被呈现(输入
s),然后变量
startOttery
将被设置为
false
。接下来,循环将对表达式求值(它将始终返回
false
),而不会实际进入循环。

如果您为代码提供的内容与我看到的完全相同,则将永远不会进入
while
循环。页面将被呈现(输入
s),然后变量
startOttery
将被设置为
false
。接下来,循环将计算表达式(它将始终返回
false
),并且永远不会真正进入循环。

您不需要在一段时间内设置间隔。而且,循环中最后一个
startottery
有什么意义?它只计算一个布尔值,而不做任何处理。@UllerUller你能从下面的答案中选择一个正确的答案吗,这样问题就接近了?你不需要在一段时间内设置间隔。那么,循环中最后一个
startottery
有什么意义?它只对布尔值求值,不做任何处理。@UllerUller您能选择下面的一个正确答案吗,这样问题就接近了?这并没有什么帮助。问题是,他使用的是循环结构,而不是设置/清除间隔。谢谢各位,我所做的只是用我的停止和启动按钮停止和启动循环。我希望当我按下启动按钮时,我会将startottery改为true,从而启动循环???@ulleruler我相信jbabey是正确的。我希望你明白为什么你所做的不是一个正确的while循环。这是一件需要理解的重要事情。但是jbabey有一些代码可以做你想做的事情,这并没有真正的帮助。问题是,他使用的是循环结构,而不是设置/清除间隔。谢谢各位,我所做的只是用我的停止和启动按钮停止和启动循环。我希望当我按下启动按钮时,我会将startottery改为true,从而启动循环???@ulleruler我相信jbabey是正确的。我希望你明白为什么你所做的不是一个正确的while循环。这是一件需要理解的重要事情。但是jbabey有代码可以做你想做的。谢谢你,来试试这个。谢谢你,来试试这个。是的,就是这个。谢谢,是的,就是这个。谢谢你
var timer;

var start = function(){
    timer = setInterval(automateLottery, 120);
};

var stop = function(){
    clearInterval(timer);
};

start();