JavaScript中的For循环

JavaScript中的For循环,javascript,for-loop,Javascript,For Loop,这是我的密码 function countdown(integer) { for i = integer, 0, -1 do { document.write(i); } } 我想做的是让一个循环做我想让它做的,我想让它做的是 对于i=integer,0,-1 do i=当前循环的变量 integer=从用户调用的整数开始循环 0=循环的结束 -1=循环的增量* 上面的问题解决了,现在的问题是它只显示“->1”+i+”Afor循环立即执行(不等待setT

这是我的密码

function countdown(integer)
{
    for i = integer, 0, -1 do
    {
        document.write(i);
    }
}
我想做的是让一个循环做我想让它做的,我想让它做的是

对于i=integer,0,-1 do

i
=当前循环的变量
integer
=从用户调用的整数开始循环
0
=循环的结束
-1
=循环的增量*


上面的问题解决了,现在的问题是它只显示“->1”+i+”A
for
循环立即执行(不等待
setTimeout
触发),因此您的代码将同时设置
integer
计时器的数量(以微秒为间隔),并且只设置最后一个(其中i为1),将对用户可见。您应按以下方式执行:

var counter = integer;
setTimeout("update();", 1000);
function update()
{
    document.getElementById("cds").value= "->" + counter + "<-";
    if(--counter == 0)
        return;
    setTimeout("update();", 1000);
}
var计数器=整数;
setTimeout(“更新();”,1000);
函数更新()
{
document.getElementById(“cds”).value=“->”+计数器+”更快(我检查了它),更容易阅读

var i = 100;
while(i--) {
   document.write(i);
}

您可以使用下面的脚本

for( var i = integer; i > 0 ; i-- ) 
{
    document.write(i);
}

根据你的更新,我猜你不需要for循环,你需要这个

函数倒计时(整数){
变量时间=设置间隔(函数(){

document.getElementById(“cds”).value=“->”+(整数--)+”我猜您想在指定的输入框中显示一个数字倒计时。让我试一试

<html>
  <head>
    <script type="text/javascript">
    function countdown(count) {
      document.getElementById("cds").value = count;
      if (count > 0) {
        setTimeout("countdown(" + (count - 1) + ")", 1000);
      }
    }
    </script>
  </head>
  <body onload="countdown(10)">
    <input type="text" id="cds" value="0" />
  </body>
</html>

函数倒计时(计数){
document.getElementById(“cds”).value=count;
如果(计数>0){
setTimeout(“倒计时”(+(计数-1+)”),1000;
}
}

诀窍是将递归调用放在setTimeout函数中,并在其周围加上当达到0时停止倒计时的条件。

我不是说它不快,我是说这是一个不容易理解的黑客行为。如果你是唯一一个看到这段代码的人,我们就去做。但是如果会有其他人看到这段代码说到这里,为什么不说清楚呢?@Aircule:对于初学者来说,这不容易理解,但一旦他们理解了,我认为下次他们看代码时很容易阅读。我不是说这是最好的方式,但对我来说更喜欢。如果我决定现在我只想从100变为2呢?我会简单地将i的初始值改为2.开玩笑:)是的,我明白你的意思了,我不是说你错了,我是对的。我刚刚写了这个答案,我看到了一些答案,我决定给出我的看法。啊哈!@aircile-当然可以用到2,就像这样
而(I-->2){document.write(I);}​让我们玩一下这个演示,它与Psycotik的答案有什么不同?如果不是,它会增加什么价值?@Anonymous the Great:正如我所说的,这是不公平的!Psycotik给出了正确的答案。你改变了问题!这就是问题所在!你第一次提交问题时根本没有提到设置超时!你说答案不起作用。您遇到的第二个问题是关于您在选择第一个“最佳答案”后发布的代码。有关
setTimeout
for( var i = integer; i > 0 ; i-- ) 
{
    document.write(i);
}
function countdown(integer) {
   var time = setInterval(function(){
        document.getElementById("cds").value="->"+(integer--)+"<-"
        if (integer == 0) clearInterval(time);
    },1000);
}​
<html>
  <head>
    <script type="text/javascript">
    function countdown(count) {
      document.getElementById("cds").value = count;
      if (count > 0) {
        setTimeout("countdown(" + (count - 1) + ")", 1000);
      }
    }
    </script>
  </head>
  <body onload="countdown(10)">
    <input type="text" id="cds" value="0" />
  </body>
</html>