有关for循环的说明

时间:2014-10-03 06:39:47

标签: javascript

我已经在Java和Javascript中看到了for循环的这种用法。逻辑规定它在其他类C语言中是相同的。这是JavaScript代码:

function (startMove, endMove) {
    var accordionTempOrder;
    var that = this;

    var currentModelState = this.model.get('customentries'),
        temp = currentModelState[startMove]; //The last model to be applied
    if (startMove <= endMove) {
        for (var i = 1; i < endMove; i++) {
            if (i >= startMove) {
                source[i] = source[i + 1];
                source[i].ordinal--;                           
            }
        }
        source[endMove] = temp;

        //User dragged competitor box from bottom to top
    } else {
        for (; startMove > endMove; startMove--) {
            source[startMove] = source[startMove - 1];
            source[startMove].ordinal++;
        }
        source[endMove] = temp;
    }         
...

我的问题是什么是用法;在for循环中?我需要进一步解释这种速记方法。它只是糖衣吗?如果有人也可以提供另一个例子,如果采用相同的方法,那将非常感激。我喜欢这个简写,并且也希望在我的代码中使用它,但我不能使用我还不理解的东西:)

7 个答案:

答案 0 :(得分:2)

根据http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

for块的语法是

for (initialization; termination;
     increment) {
    statement(s)
}

所以如果你不需要初始化,你可以把它留空,就像其他其他部分一样

答案 1 :(得分:1)

所有这些意味着循环使用外部变量来跟踪迭代。这意味着没有int i = 0

您实际上可以将所有三个部分都保留,因为所有部分都是可选的

for(;;)

并且有一个无限循环。

答案 2 :(得分:1)

for (; startMove > endMove; startMove--)

表示for statement(初始化)的第一个参数是什么。

在这种情况下,startMove已经有了一个值,无需再初始化任何内容。

答案 3 :(得分:1)

对我而言,这个图像足以理解for循环。

Image reference and for loop explanation

正如在将其视为有效建议后的评论中所建议的那样,让我补充一些重点。

for loop 有三个主要部分,

  • 初始化部分仅适用一次且可选。
  • 每次迭代检查的条件
  • 每次迭代后完成修改(递增/递减)。

但请注意 无限循环的一件事,这三部分都是可选的。(即for( ; ;)

答案 4 :(得分:0)

for循环语句有三个部分:init,condition和“increment”。在你的问题的情况下,不需要任何初始化;在循环之前不需要做任何事情,但仍然需要其他两个部分。这些部分用分号分隔。

答案 5 :(得分:0)

第一个维基百科的结果会给你这个:

for(INITIALIZATION; CONDITION; INCREMENT/DECREMENT){
    // Code for the for loop's body
    // goes here.
}

如果您不需要,任何字段都可以留空。

例如,下一行意味着永远继续,因为没有停止条件。

for (var i = 1; ; i++) {

答案 6 :(得分:0)

循环for有一个语法

for(initialization; condition; increment/decrement/looping condition) {
  // CODE here
}

这是函数的语法,如果您不需要在for循环中使用上述任何条件,您可以将其留空。

例如我们有

var itr = 0;
for(; itr<10; itr++) {
  // Do something
}

这里我们没有要求初始化我们的变量itr,因为它已经初始化了。

另一个例子

for(itr1=0,itr2=10; itr1<10;itr1++, itr2--) {
  // Do something
}

这里我们在for循环itr1和itr2中初始化了两个变量,并且增加了itr1的值并减少了itr2的值