166 votes

Une boucle for peut-elle incrémenter/décrémenter de plus d'une unité ?

Existe-t-il d'autres moyens d'incrémenter un for boucle en Javascript en plus de i++ y ++i ? Par exemple, je veux incrémenter par 3 au lieu de 1.

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

331voto

Andrew Whitaker Points 58588

Utilisez le += opérateur d'affectation :

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

Techniquement, vous pouvez placer n'importe quelle expression dans l'expression finale de la boucle for, mais elle est généralement utilisée pour mettre à jour la variable compteur.

Pour plus d'informations sur chaque étape de la boucle for, Consultez l'article du MDN .

15voto

ninjagecko Points 25709

A for boucle :

for(INIT; TEST; ADVANCE) {
    BODY
}

Signifie ce qui suit :

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

Vous pouvez écrire presque n'importe quelle expression pour INIT , TEST , ADVANCE y BODY .

Notez que le ++ et les variantes sont des opérateurs avec des effets secondaires (il faut essayer de les éviter si vous ne les utilisez pas comme i+=1 et autres) :

  • ++i signifie i+=1; return i
  • i++ signifie oldI=i; i+=1; return oldI

Exemple :

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

10voto

Adil Malik Points 1754
for (var i = 0; i < 10; i = i + 2) {
    // code here
}​

5voto

Paul S. Points 20115

La réponse d'Andrew Whitaker est vraie, mais vous pouvez utiliser n'importe quelle expression pour n'importe quelle partie.
N'oubliez pas que la deuxième expression (du milieu) doit être évaluée de manière à pouvoir être comparée à un booléen. true ou false .

Lorsque j'utilise un for boucle je le vois comme

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

comme étant

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

4voto

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

supplémentaire

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X