一个for循环可以递增/递减多于一个?
除了i++
和++i
还有其他的方法来增加Javascript中的for
循环吗? 例如,我想增加3而不是1。
for (var i = 0; i < myVar.length; i+3) { //every three }
使用+=
赋值运算符 :
for (var i = 0; i < myVar.length; i += 3) {
从技术上讲,你可以在for循环的最后expression式中放置任何expression式,但通常用于更新计数器variables。
有关for循环的每个步骤的更多信息, 请查看MDN文章 。
for (var i = 0; i < 10; i=i+2) { // code here }
一个for
循环:
for(INIT; TEST; ADVANCE) { BODY }
意思如下:
INIT; while (true) { if (TEST) break; BODY; ADVANCE; }
您可以为INIT
, TEST
, ADVANCE
和BODY
编写几乎任何expression式。
请注意, ++
运算符和变体是带有副作用的运算符(如果你不像i+=1
之类那样使用它们,应该尽量避免它们):
-
++i
表示i+=1; return i
i+=1; return i
-
i++
意思是oldI=i; i+=1; return oldI
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)的回答是真实的,但是你可以使用任何expression来expression任
只要记住第二个(中)expression式应该评估,以便它可以比较布尔true
或false
。
当我使用for
循环时 ,我认为它是
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
的缩写。