# Increment Operator ++

If you have a basic understanding of any programming language then you’re likely familiar with for loops and have probably used the ‘++’ operator. The increment operator written as ‘++’ adds one to its operand and the decrement operator ‘ — — ’ subtracts one from its operand.

Languages that support the ++/ — — increment/decrement operators include: C++, C#, Go, Java, JavaScript, PHP and more.

`for (var i = 0; i < 3; i++) {  console.log(i);}Output: 0     // i = 0, increment by 1 => i = 11     // i = 1, increment by 1 => i = 22     // i = 2, increment by 1 => i = 3, i is not < 3, loop ends`

# Pre-increment vs. Post-increment

You’re probably wondering, if the increment operator adds one to the operand, aren’t ++i and i++ the same? Yes, as a standalone statement they are equal. Both a pre-incremented operand ++i, and a post-incremented operand i++, where i is the operand will both add one to i. So is there a difference? Yes.

The difference can be seen if the incremented operand is assigned to a variable, the value of the assigned variable will depend on whether the operator is pre- or post-incremented.

As a quick reminder, all programming languages execute code in order. It runs one line of code at a time, and code is loaded into memory in the order specified starting on line 1.

Pre-increment ++i

• increment the variable
• the value of the expression is the final value

Post-increment i++

• the original value is loaded into memory, then increment the variable
• the value of the expression is the original value
`// Increment operator// Pre-increment: x is incremented by 1, then y is assigned the value of xx = 1;y = ++x;    // x is 2, y is also 2// Post-increment: y is assigned the value of x, then x is incremented by 1x = 1;y = x++;    // x is 2, y is 1// Decrement operator// Pre-decrement: x is decremented by 1, then y is assigned the value of xx = 1;y = --x;    // x is 0, y is also 0// Post-decrement: y is assigned the value of x, then x is decremented by 1x = 1;y = x--;    // x is 0, y is 1`

In languages that don’t support this operator, you can increment as you would using simple addition and subtraction.

`# Pre-increment: y = ++xx = 1x = x + 1  # x is now 2  (or "x += 1" in Python and Ruby)y = x      # y is also 2# Post-increment: y = x++x = 1y = x      # y is 1x = x + 1  # x is now 2`