简单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();