# Programming Tutorials

## Increment and Decrement Operator

By: aathishankaran in Java Tutorials on 2007-02-05

The ++ and the -- are java's increment and decrement operators. They were introduced in previous article. Here they will be discussed in detail. As you will see, they have some special properties that make them quite interesting. Let us begin by reviewing precisely what the increment and decrement operators do.

The increment operator increases its operand by one. The decrement operator decreases its operand by one. For example, this statement:

`x = x + 1;`

can be rewritten like this by use for the increment operator:

`x++;`

Similarly, this statement:

`x = x - 1;`

is equivalent to

`x--;`

These operators are unique in that they can appear both in postfix form, where they follow the operand as just shown, and prefix form, where they precede the operand. in foregoing examples, there is no difference between the prefix and postfix forms. However, when the increment and / pr decrement operators are part of a larger expression, then a subtle, yet powerful, difference between these two forms appears. In the prefix form, the operand is incremented or decremented before the value is obtained for use in the expression. In postfix form, the previous value is obtained for use in the expression, and then the operand is modified. For example:

`x = 42;y = ++x;`

In this case, y is set to 43 as you would expect, because the increment occurs before x is assigned to y. thus, the line y=++x; is the equivalent of these two statements:

`x = 42;y = x++;`

The value of x is obtained before the increment operator is executed, so the value of y is 42. Of course, in both cases x is set to 43. Here, the line y = x++; is the equivalent of these two statements:

`y = x;x = x + 1;`

The following program demonstrates the increment operator.

```// Demonstrate ++.

class InDec {

public static void main (String args[]) {

int a = 1;
int b = 2;
int c;
int d;
c = ++b;
d = a++;
c++;

System.out.println("a = " +  a);
System.out.println("b = " +  b);
System.out.println("c = " + c);
System.out.println("d = " + d);

}

}```

The output of this program follows:

`a = 2b = 3c = 4d = 1`