# Can a for loop increment/decrement by more than one?

## Can a for loop increment/decrement by more than one?

Are there other ways to increment a for loop in Javascript besides i++ and ++i? For example, I want to increment by 3 instead of one.
for (var i = 0; i < myVar.length; i+3) { //every three }

### Solution 1:

Use the `+=` assignment operator:

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

Technically, you can place any expression you’d like in the final expression of the for loop, but it is typically used to update the counter variable.

### Solution 2:

A `for` loop:

``````for(INIT; TEST; ADVANCE) {
BODY
}
``````

Means the following:

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

You can write almost any expression for `INIT`, `TEST`, `ADVANCE`, and `BODY`.

Do note that the `++` operators and variants are operators with side-effects (one should try to avoid them if you are not using them like `i+=1` and the like):

• `++i` means `i+=1; return i`
• `i++` means `oldI=i; i+=1; return oldI`

Example:

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

### Solution 3:

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

### Solution 4:

Andrew Whitaker’s answer is true, but you can use any expression for any part.
Just remember the second (middle) expression should evaluate so it can be compared to a boolean `true` or `false`.

When I use a `for` loop, I think of it as

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

as being

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

### Solution 5:

You certainly can. Others have pointed out correctly that you need to do `i += 3`. You can’t do what you have posted because all you are doing here is adding `i + 3` but never assigning the result back to `i`. `i++` is just a shorthand for `i = i + 1`, similarly `i +=3` is a shorthand for `i = i + 3`.

### Solution 6:

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

``````Operator   Example    Same As