如何考虑for循环是否完成?

时间:2014-10-18 15:33:22

标签: javascript

for (var i = 1; i < 99999; i++) {
    window.clearInterval(i);
    console.log('interval cleared');
}

以上代码将记录99999次&#34;间隔清除&#34;。但是如何记录for循环是否已完成?

if(for loop is completed){
  console.log('interval cleared');
}

4 个答案:

答案 0 :(得分:3)

for循环是同步的,循环中的代码也是同步的。你的for循环将在执行后的任何代码之前完成。

for (var i = 1; i < 99999; i++) {
    window.clearInterval(i);
    console.log('interval cleared');
}

console.log("all intervals cleared");

答案 1 :(得分:0)

只有当i的值大于或等于99999时,你的循环才会停止,所以这意味着在循环结束i之后,这里实际上有一个99999的值,因为你在每次迭代结束。现在,这意味着如果i完全等于您的上边界减去一(99998),您可以告诉您不会再次循环(除非您在循环内修改i较低的值)

这意味着你可以这样做

var upperBoundary = 99999;
for (var i = 1; i < upperBoundary; i++) {
    window.clearInterval(i);
    if (i === upperBoundary - 1) {
        // last iteration code
        console.log('All intervals cleared');
    }
}

但这可以替代更简单的代码:

var upperBoundary = 99999;
for (var i = 1; i < upperBoundary; i++) {
    window.clearInterval(i);
}


// note that i has the same value as upperBoundary
console.log('All intervals cleared');

在js和许多其他编程语言中,for循环由3个部分组成(每个部分用分号分隔):

  1. 边界初始化(例如var i = 0
  2. 确定您是否会再次循环的条件 不(即i < 99999
  3. 递增(每次都做 循环体执行后的时间)
  4. 您可以将其转换为带有while循环的代码,例如:

    // initialization
    var i = 0;
    // condition
    while(i < 99999) {
        // loop body
    
        // incrementing
        i++;
    }
    

答案 2 :(得分:0)

我认为尼克想象一下:

for (var i = 1; i < 99999; i++) {
    window.clearInterval(i);
    if(i==99998) console.log('all intervals cleared');
}

实际上,99999间隔不会被清除。

答案 3 :(得分:0)

循环开始

int count = 0;
for (var i = 1; i < 99999; i++) {
window.clearInterval(i);
count++;
console.log('interval cleared');
}
console.log('Loop ended:' + count);