forループは1つ以上増減できますか?


119

forJavascriptでループをインクリメントする方法は他にもi++あり++iますか?たとえば、1つではなく3ずつ増分したいとします。

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

4
3番目の引数をi = i + 3に置き換えることはできませんか?それともJavaだけですか?
CptJesus 2012年

1
はい、問題i++あり++iませんi+=1。forループ宣言で使用した場合と同じようにi+=3機能します。
elclanrs 2012年

1
forループは何も増加しません。forステートメントで使用されているコードが実行します。どのように/どのように/どこで/いつ変更したいiか、あるいはそのための他の変数は完全にあなた次第です。
私は

2
これはforループではなく、無限ループです。つまりi+=3
ninjagecko 2012年

2
これは簡単な解決策の簡単な質問だと思いますが、反対票の理由は何ですか?私はそれが複製ではないと確信しています。
brentonstrine

回答:


253

+= 代入演算子を使用します

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

技術的には、forループの最終式に任意の式を配置できますが、通常はカウンター変数を更新するために使用されます。

forループの各ステップの詳細については、MDNの記事をご覧ください。


詳細をありがとう-3番目のスロットにさらに高度な式を入れる方法があると確信していた-変数を定義する必要があることを忘れていたので、明らかにi+3機能しない。
brentonstrine

@brentonstrine:問題ありません。助けてくれてうれしいです
Andrew Whitaker

無限ループの原因は何i+3ですか?
Sanjay Shr

1
@SanjayShrは、i+3の値が変更されませんi
Nahid

@Nahidはい、私は自分の答えにコメントしました。Thanx
Sanjay Shr

13

forループ:

for(INIT; TEST; ADVANCE) {
    BODY
}

以下を意味します:

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

あなたは、のために、ほぼすべての式を書くことができINITTESTADVANCE、と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]


5

Andrew Whitakerの答えは正しいですが、どの部分にも任意の式を使用できます。
2番目(中央)の式がブール型trueまたはと比較できるように評価されることを覚えておいてくださいfalse

forループを使用するとき、私はそれを

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

として

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

1

確かにできます。他の人はあなたがする必要があることを正しく指摘しましたi += 3。ここで行っていることは、追加するi + 3だけで結果をに割り当てないため、投稿したことを実行できませんii++はの省略形でありi = i + 1、同様i +=3にの省略形ですi = i + 3


1
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

-1

三項演算子の最後の部分では、増分ステップサイズを指定できます。たとえば、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」は、目的のステップサイズに応じて、任意の浮動小数点数または整数にすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.