javascript 一个for循环可以递增/递减一个以上吗?

jhdbpxl9  于 2023-03-11  发布在  Java
关注(0)|答案(9)|浏览(160)

除了i++++i,在Javascript中还有其他方法来递增for循环吗?例如,我想递增3而不是1。

for (var i = 0; i < myVar.length; i+3) {
   //every three
}
hl0ma9xz

hl0ma9xz1#

使用+=赋值运算符:

for (var i = 0; i < myVar.length; i += 3) {

从技术上讲,您可以将任何表达式放在for循环的最终表达式中,但它通常用于更新计数器变量。
有关for循环每个步骤的详细信息,请参阅check out the MDN article

a6b3iqyw

a6b3iqyw2#

一个for循环:

for(INIT; TEST; ADVANCE) {
    BODY
}

指以下内容:

INIT;
while (true) {
    if (!TEST)
        break;
    BODY;
    ADVANCE;
}

几乎可以为INITTESTADVANCEBODY编写任何表达式。
请注意,++操作符和变体是具有副作用的操作符(如果不像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]
rmbxnbpk

rmbxnbpk3#

for (var i = 0; i < 10; i = i + 2) {
    // code here
}​
iaqfqrcu

iaqfqrcu4#

安德鲁·惠特克的答案是正确的,但你可以用任何表达来表达任何部分。
只需记住第二个(中间)表达式应该求值,以便它可以与布尔值truefalse进行比较。
当我使用for loop时,我认为它是

for (var i = 0; i < 10; ++i) {
    /* expression */
}

作为

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}
bxjv4tth

bxjv4tth5#

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
lsmd5eda

lsmd5eda6#

你当然可以。其他人已经正确地指出,你需要做i += 3。你不能做你所张贴的,因为你在这里所做的是添加i + 3,但从来没有分配结果回ii++只是i = i + 1的缩写,类似地i +=3i = i + 3的缩写。

bfnvny8b

bfnvny8b7#

对于那些希望增加数字对(如1-2到3-4)的人:
解决方案一:

//initial values
var n_left = 1;
var n_right = 2;
    
for (i = 1; i <= 5; i++) {
        
    console.log(n_left + "-" + n_right);   
        
    n_left =+ n_left+2;
    n_right =+ n_right+2; 
}
//result: 1-2 3-4 5-6 7-8 9-10

解决方案二:

for (x = 0; x <= 9; x+=2) {
    
    console.log((x+1) + "-" + (x+2));  

}
//result: 1-2 3-4 5-6 7-8 9-10
1sbrub3j

1sbrub3j8#

三元运算符的最后一部分用于指定增量步长。例如,i++表示增量为1。i+=2与i=i+2相同,......等等。示例:

let val= [];

for (let i = 0; i < 9; i+=2) {
  val = val + i+",";
}

console.log(val);

预期成果:二、四、六、八
“i”可以是任何浮点数或整数,这取决于期望的步长。

kqhtkvqz

kqhtkvqz9#

这里有一个运算符,例如,如果我想把变量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
}

相关问题