2012-10-09 11 views
65

i++ ve ++i yanında JavaScript bir for döngü artırmak için başka yolları var? Örneğin, bir yerine 3 ile artırmak istiyorum. +=assignment operatorBir ilmek artışı/azaltımı birden fazla tarafından olabilir mi?

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

? Yoksa sadece Java'da mı? – CptJesus

+1

Evet, bu i '= ++' ve '++ i' 'i + = 1 'gibidir, eğer i döngü beyanında kullanılırsa,' i + = 3' çalışırdı. – elclanrs

+1

A 'for' döngüsü hiçbir şey artırmaz. 'For' ifadesinde kullanılan kodunuz yapar. Tamamen size/i/nerede/ne zaman 'i' ya da bu konudaki başka bir değişkeni değiştirmek istediğiniz zaman size kalmış. –

cevap

144

Kullanım:

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

Teknik olarak, for döngüsü son ifadede istediğiniz herhangi bir ifade yerleştirebilirsiniz, ancak genellikle sayaç değişkeni güncellemek için kullanılır. döngü, check out the MDN article için her adımı hakkında daha fazla bilgi için

.

+0

Ayrıntılar için teşekkürler - Üçüncü sıraya daha gelişmiş ifadeler koymanın bir yolu olduğundan emindim - Değişkeni tanımlamanın sadece unutmuş olduğunu unutmuştum, o yüzden açıkça 'i + 3' çalışmıyor. – brentonstrine

+0

@brentonstrine: Sorun değil, –

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

ya da 'for (var i = 0; i <10; i + = 2)' ye yardımcı olabildiğime sevindim, çünkü 'i = i + 2 ',' i + = 2'ye eşittir – arximughal

7

A for döngü:

for(INIT; TEST; ADVANCE) { 
    BODY 
} 

aşağıdaki Anlamı:

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

Sen INIT, TEST, ADVANCE ve BODY için hemen hemen her ifade yazabilirsiniz.

  • ++ii+=1; return i
  • şu anlama gelir:

    ++ operatörler ve varyantları yan etkileri olan operatörler (tek sen i+=1 gibi bunları kullanarak ve benzeri değilse bunları önlemek için çalışmalısınız) olduğunu unutmayın

    : i++oldI=i; i+=1; return oldI

Örnek demektir

> i=0 
> [i++, i, ++i, i, i--, i, --i, i] 
[0, 1, 2, 2, 2, 1, 0, 0] 
5

Andrew Whitaker'ın cevabı doğrudur, ancak herhangi bir bölüm için herhangi bir ifadeyi kullanabilirsiniz.
Sadece ikinci (orta) ifadesi bu nedenle boolean true veya false bir mukayese edilebilir değerlendirmelidir hatırlıyorum. Ben for loop kullandığınızda

, ben Kesinlikle getirebilirsiniz

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

olarak

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

olarak düşün. Diğerleri, i += 3 yapman gerektiğini doğru bir şekilde işaret ettiler. Gönderdiğiniz her şeyi yapamazsınız, çünkü burada yaptığınız her şey i + 3 ekliyor, ancak hiçbir zaman sonucu i'a atamıyorsunuz. i++, i = i + 1 için bir kısa yoldur, benzer şekilde i +=3, i = i + 3 için bir kısa yoldur.

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

ek Cant sadece üçüncü argüman için = i + 3 i yerine

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 
İlgili konular