我已经在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循环中?我需要进一步解释这种速记方法。它只是糖衣吗?如果有人也可以提供另一个例子,如果采用相同的方法,那将非常感激。我喜欢这个简写,并且也希望在我的代码中使用它,但我不能使用我还不理解的东西:)
答案 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的值