一个 for 循环可以增加/减少一个以上吗?
Posted
技术标签:
【中文标题】一个 for 循环可以增加/减少一个以上吗?【英文标题】:Can a for loop increment/decrement by more than one? 【发布时间】:2012-09-30 08:37:45 【问题描述】:除了i++
和++i
之外,还有其他方法可以在javascript 中增加for
循环吗?例如,我想增加 3 而不是 1。
for (var i = 0; i < myVar.length; i+3)
//every three
【问题讨论】:
你不能用 i = i + 3 代替第三个参数吗?还是仅在 Java 中? 是的,如果在 for 循环声明中使用i++
和 ++i
就像 i+=1
一样,那么 i+=3
可以工作。
for
循环不会增加任何内容。 for
语句中使用的代码可以。这完全取决于您如何/如果/在哪里/何时修改i
或任何其他变量。
这不是for循环,而是无限循环。你的意思是i+=3
。
我知道这是一个简单的问题,有一个简单的解决方案,但反对票的原因是什么?我很确定它不是重复的。
【参考方案1】:
为此有一个运算符。例如,如果我想将变量 i 更改为 3,那么:
var someValue = 9;
var Increment = 3;
for(var i=0;i<someValue;i+=Increment)
//do whatever
要减少,请使用 -=
var someValue = 3;
var Increment = 3;
for(var i=9;i>someValue;i+=Increment)
//do whatever
【讨论】:
【参考方案2】:三元运算符的最后一部分允许您指定增量步长。例如,i++ 表示递增 1。i+=2 与 i=i+2,... 等相同。 示例:
let val= [];
for (let i = 0; i < 9; i+=2)
val = val + i+",";
console.log(val);
预期结果:“2,4,6,8”
'i' 可以是任何浮点数或整数,具体取决于所需的步长。
【讨论】:
【参考方案3】:for (var i = 0; i < 10; i = i + 2)
// code here
【讨论】:
或for (var i = 0; i < 10; i+=2)
,因为i=i+2
等于i+=2
【参考方案4】:
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
【讨论】:
【参考方案5】: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]
【讨论】:
【参考方案6】:你当然可以。其他人已经正确指出你需要做i += 3
。你不能做你发布的事情,因为你在这里所做的只是添加i + 3
,但永远不会将结果分配回i
。 i++
只是i = i + 1
的简写,同样i +=3
是i = i + 3
的简写。
【讨论】:
【参考方案7】:Andrew Whitaker 的回答是正确的,但您可以对任何部分使用任何表达式。
请记住,第二个(中间)表达式应该计算,以便可以将其与布尔值 true
或 false
进行比较。
当我使用for
loop 时,我认为它是
for (var i = 0; i < 10; ++i)
/* expression */
存在
var i = 0;
while( i < 10 )
/* expression */
++i;
【讨论】:
【参考方案8】:使用+=
assignment operator:
for (var i = 0; i < myVar.length; i += 3)
从技术上讲,您可以在 for 循环的最终表达式中放置您想要的任何表达式,但它通常用于更新计数器变量。
有关 for 循环每个步骤的更多信息,check out the MDN article。
【讨论】:
感谢您提供详细信息-我很确定有办法将更高级的表达式放入第三个插槽-我只是忘记了它需要定义变量,所以显然i+3
不起作用。
@brentonsrine:没问题,很高兴我能帮上忙
我们做i+3
时死循环的原因是什么?
@SanjayShr i+3
不会改变i
的值
@Nahid 是的,我评论了我的答案。谢谢以上是关于一个 for 循环可以增加/减少一个以上吗?的主要内容,如果未能解决你的问题,请参考以下文章