DEV Community

Cover image for Increment and Decrement Operators
Paul Ngugi
Paul Ngugi

Posted on

Increment and Decrement Operators

The increment operator (++) and decrement operator (––) are for incrementing and decrementing a variable by 1. The ++ and —— are two shorthand operators for incrementing and decrementing a variable by 1. These are handy because that’s often how much the value needs to be changed in many programming tasks. For example, the following code increments i by 1 and decrements j by 1.

int i = 3, j = 3;
i++; // i becomes 4
j——; // j becomes 2
Enter fullscreen mode Exit fullscreen mode

i++ is pronounced as i plus plus and i—— as i minus minus. These operators are known as postfix increment (or postincrement) and postfix decrement (or postdecrement), because the operators ++ and —— are placed after the variable. These operators can also be placed before the variable. For example,

int i = 3, j = 3;
++i; // i becomes 4
——j; // j becomes 2
Enter fullscreen mode Exit fullscreen mode

++i increments i by 1 and ——j decrements j by 1. These operators are known as prefix increment (or preincrement) and prefix decrement (or predecrement).
As you see, the effect of i++ and ++i or i—— and ——i are the same in the preceding examples. However, their effects are different when they are used in statements that do more than
just increment and decrement.

Image description

Here are additional examples to illustrate the differences between the prefix form of ++ (or ——) and the postfix form of ++ (or −−).

int i = 10;
int newNum = 10 * i++;
System.out.print("i is " + i
 + ", newNum is " + newNum);
Enter fullscreen mode Exit fullscreen mode

The result:

i is 11, newNum is 100 
Enter fullscreen mode Exit fullscreen mode

In this case, i is incremented by 1, then the old value of i is used in the multiplication. So newNum becomes 100. If i++ is replaced by ++i as follows,

int i = 10;
int newNum = 10 * (++i);
System.out.print("i is " + i
 + ", newNum is " + newNum);
Enter fullscreen mode Exit fullscreen mode

The results

i is 11, newNum is 110 

Enter fullscreen mode Exit fullscreen mode

i is incremented by 1, and the new value of i is used in the multiplication. Thus newNum becomes 110. Here is another example:

double x = 1.0;
double y = 5.0;
double z = x–– + (++y);
Enter fullscreen mode Exit fullscreen mode

After all three lines are executed, y becomes 6.0, z becomes 7.0, and x becomes 0.0.

Using increment and decrement operators makes expressions short, but it also makes them complex and difficult to read. Avoid using these operators in expressions that modify multiple variables or the same variable multiple times, such as this one: int k = ++i + i.

Top comments (0)