任何人都可以解释为什么我无法停止并开始这个循环吗?
<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;
};
谢谢
答案 0 :(得分:2)
问题1
while
循环仅在操作数求值为true
时执行。
但是,您的startLottery
变量等于false
。
所以while
循环永远不会执行。
问题2
您实际上没有更改startLottery
变量的值,所以即使循环执行了,它也永远不会终止。
答案 1 :(得分:2)
你无法启动和停止这样的循环。您需要使用setInterval
和clearInterval
:
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()">
修改:Working demo。
答案 2 :(得分:0)
我相信你正在寻找这个(假设你有一个automateLottery
函数):
var timer;
var start = function(){
timer = setInterval(automateLottery, 120);
};
var stop = function(){
clearInterval(timer);
};
start();
答案 3 :(得分:0)
如果您为代码提供的内容与我看到的完全相同,则永远不会输入while
循环。页面将被呈现(input
s),然后变量startLottery
将被设置为false
。接下来,循环将评估表达式(它将始终返回false
)并且永远不会实际进入循环。