# Java - Increment Decrement Operators

### Java

Share

In this tutorial we will learn about increment and decrement operators in Java programming language.

Adding and subtracting 1 from a variable is quite common and to achieve that we write the following.

``````// add 1
x = x + 1;

// subtract 1
x = x - 1;
``````

## Increment Operator

In the following example we are increasing the value of x by 1.

``````// declare variable
int x;

// assign a value
x = 10;

// increase value by 1
x = x + 1;
``````

We can achieve the same result by using the increment operator `++`.

So, increment operator ++ increases the value of a variable by 1.

In the following example we are increasing the value of x by 1.

``````// declare variable
int x;

// assign value
x = 10;

// increase value by 1
x++;
``````

Note! `x++` is equivalent to `x = x + 1` in the above example.

## Decrement Operator

Similarly, if we want to decrease the value of a variable x by 1. Then we can write the following code.

``````// declare variable
int x;

// assign value
x = 10;

// decrease value by 1
x = x - 1;
``````

To achieve the same result we use the decrement operator `--`.

So, decrement operator -- decreases the value of a variable by 1.

In the following example we are decreasing the value of x by 1.

``````// declare variable
int x;

// assign value
x = 10;

// decrease value by 1
x--;
``````

Note! `x--` is equivalent to `x = x - 1` in the above code.

Both ++ and -- are unary operators.

Both `x++` and `++x` means the same thing when they form statement independently.

Similarly, `x--` and `--x` means the same when they form statement independently.

But they behave differently when they are used in expression on the right hand side of an assignment statement.

## First use then increase

In the following example we are using the increment operator ++ after the variable x on the right hand side of an assignment statement.

So, value of x will be used first then it will be increased by 1.

``````class Increment {
public static void main(String args[]) {
// declare variables
int x, y;

// assign value to x
x = 10;

System.out.println("Before x++: Value of x = " + x);

// assign value to y
y = x++ + 10;

System.out.println("y = " + y);

System.out.println("After x++: Value of x = " + x);
}
}
``````
Output:

``````Before x++: Value of x = 10
y = 20
After x++: Value of x = 11
``````

Explanation:

``````we have, y = x++ + 10;
so, we first use the value of x
i.e., 10 and then increase it by 1

so,
y = x++ + 10;
y = 10 + 10;
y = 20;

and now increasing the value of x by 1
so, x = 11
``````

## First increase then use

In the following example we are using the increment operator ++ before the variable x on the right hand side of an assignment statement.

So, value of x will be first increased by 1 and then used.

``````class Increment {
public static void main(String args[]) {
// declare variables
int x, y;

// assign value to x
x = 10;

System.out.println("Before ++x: Value of x = " + x);

// assign value to y
y = ++x + 10;

System.out.println("y = " + y);

System.out.println("After ++x: Value of x = " + x);
}
}
``````

Output:

``````Before ++x: Value of x = 10
y = 21
After ++x: Value of x = 11
``````

Explanation:

``````given, y = ++x + 10;

since we have ++x
so,
x is now 10+1 = 11

now using the new value of x

so,
y = ++x + 10;
y = 11 + 10;
y = 21;
``````

Similarly, we can show the two cases for the decrement operator.

## First use then decrease

In the following example we first use the value of x then decrease it by 1.

``````class Decrement {
public static void main(String args[]) {
// declare variables
int x, y;

// assign value to x
x = 10;

System.out.println("Before x--: Value of x = " + x);

// assign value to y
y = x-- + 10;

System.out.println("y = " + y);

System.out.println("After x--: Value of x = " + x);
}
}
``````

Output:

``````Before x--: Value of x = 10
y = 20
After x--: Value of x = 9
``````

## First decrease then use

In the following example we first decrease the value of x then use it.

``````class Decrement {
public static void main(String args[]) {
// declare variables
int x, y;

// assign value to x
x = 10;

System.out.println("Before --x: Value of x = " + x);

// assign value to y
y = --x + 10;

System.out.println("y = " + y);

System.out.println("After --x: Value of x = " + x);
}
}
``````

Output:

``````Before --x: Value of x = 10
y = 19
After --x: Value of x = 9
``````
Share