简单的while问题(javascript)



有没有人能解释一下为什么我不能停止和开始这个循环?

 <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;   
};

谢谢

不能像这样开始和停止循环。您需要使用setIntervalclearInterval:

JS:

var lotteryInterval;
var start = function(){
    lotteryInterval = setInterval(lotteryFunc, 120);
};
var stop = function(){
    clearInterval(lotteryInterval);
};
var lotteryFunc = function () {
    automateLottery();
};
HTML:

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

编辑:工作演示

问题1

while循环只在操作数求值为true时执行。

但是,一开始你的startLottery变量等于false

所以while循环永远不会执行。

问题2

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

我相信你正在寻找这个(假设你有一个automateLottery函数):

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

如果您提供的代码与我看到的完全一样,则永远不会进入while循环。将渲染页面(input s),然后将变量startLottery设置为false。接下来,循环将计算表达式(它将始终返回false),而不会实际进入循环。

最新更新