除了i++
和++i
之外,是否还有其他方法可以增加Javascript中的for
循环?例如,我想增加3而不是1。一个for循环可以递增/递减多于一个吗?
for (var i = 0; i < myVar.length; i+3) {
//every three
}
除了i++
和++i
之外,是否还有其他方法可以增加Javascript中的for
循环?例如,我想增加3而不是1。一个for循环可以递增/递减多于一个吗?
for (var i = 0; i < myVar.length; i+3) {
//every three
}
使用+=
assignment operator:
for (var i = 0; i < myVar.length; i += 3) {
从技术上讲,你可以把你想在for循环的最终表达的任何表达,但它通常用于更新计数器变量。
有关for循环的每个步骤的更多信息,请参阅check out the MDN article。
感谢您的详细信息 - 我确信有一种方法可以将更高级的表达式放入第三个插槽 - 我刚刚忘记了它需要定义变量,因此显然'i + 3'不起作用。 – brentonstrine
@brentonstrine:没问题,很高兴我可以帮到 –
for (var i = 0; i < 10; i=i+2) {
// code here
}
或'for(var i = 0; i <10; i + = 2)',因为'i = i + 2'等于'i + = 2' – arximughal
一个for
循环:
for(INIT; TEST; ADVANCE) {
BODY
}
意味着:
INIT;
while (true) {
if (!TEST)
break;
BODY;
ADVANCE;
}
你可以写上几乎任何表达式INIT
,TEST
,ADVANCE
和BODY
。
请注意,++
运营商和变形是有副作用的运营商(一个应该尝试,如果你不使用他们喜欢i+=1
等以避免它们):
++i
意味着i+=1; return i
i++
装置oldI=i; i+=1; return oldI
实施例:
> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
Andrew Whitaker的回答是真实的,但您可以对任何部分使用任何表达式。
只要记住第二个(中)表达式应该评估,以便它可以与布尔值true
或false
比较。
当我使用一个for
loop,我认为它是
for (var i = 0; i < 10; ++i) {
/* expression */
}
为
var i = 0;
while(i < 10) {
/* expression */
++i;
}
你当然可以。其他人已经正确指出你需要做i += 3
。你不能做你发布的内容,因为你在这里所做的只是添加i + 3
,但从不将结果分配回i
。 i++
只是i = i + 1
的简写,同样i +=3
是i = i + 3
的简写。
for (var i = 0; i < myVar.length; i+=3) {
//every three
}
额外
Operator Example Same As
++ X ++ x = x + 1
-- X -- x = x - 1
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x/y
%= x %= y x = x % y
广东话你刚刚替补I = I + 3的第三个参数?还是只有在Java? – CptJesus
是的,如果在for循环声明中使用'i ++'和'++ i'就好像'i + = 1',所以'i + = 3'可以工作。 – elclanrs
'for'循环不会增加任何内容。您在'for'语句中使用的代码的确如此。这完全取决于你如何/如果/何地/何时想修改'i'或任何其他变量。 –