Open In App
Related Articles

Java Assignment Operators with Examples

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Operators constitute the basic building block of any programming language. Java too provides many types of operators which can be used according to the need to perform various calculations and functions, be it logical, arithmetic, relational, etc. They are classified based on the functionality they provide.

Types of Operators: 

  1. Arithmetic Operators
  2. Unary Operators
  3. Assignment Operator
  4. Relational Operators
  5. Logical Operators
  6. Ternary Operator
  7. Bitwise Operators
  8. Shift Operators

This article explains all that one needs to know regarding Assignment Operators. 

Assignment Operators

These operators are used to assign values to a variable. The left side operand of the assignment operator is a variable, and the right side operand of the assignment operator is a value. The value on the right side must be of the same data type of the operand on the left side. Otherwise, the compiler will raise an error. This means that the assignment operators have right to left associativity, i.e., the value given on the right-hand side of the operator is assigned to the variable on the left. Therefore, the right-hand side value must be declared before using it or should be a constant. The general format of the assignment operator is, 

variable operator value;

Types of Assignment Operators in Java

The Assignment Operator is generally of two types. They are:

1. Simple Assignment Operator: The Simple Assignment Operator is used with the “=” sign where the left side consists of the operand and the right side consists of a value. The value of the right side must be of the same data type that has been defined on the left side.

2. Compound Assignment Operator: The Compound Operator is used where +,-,*, and / is used along with the = operator.

Let’s look at each of the assignment operators and how they operate: 

1. (=) operator: 

This is the most straightforward assignment operator, which is used to assign the value on the right to the variable on the left. This is the basic definition of an assignment operator and how it functions. 

Syntax: 

num1 = num2;

Example: 

a = 10;
ch = 'y';

Java

// Java code to illustrate "=" operator
 
import java.io.*;
 
class Assignment {
    public static void main(String[] args)
    {
        // Declaring variables
        int num;
        String name;
 
        // Assigning values
        num = 10;
        name = "GeeksforGeeks";
 
        // Displaying the assigned values
        System.out.println("num is assigned: " + num);
        System.out.println("name is assigned: " + name);
    }
}

                    

Output
num is assigned: 10
name is assigned: GeeksforGeeks

2. (+=) operator: 

This operator is a compound of ‘+’ and ‘=’ operators. It operates by adding the current value of the variable on the left to the value on the right and then assigning the result to the operand on the left. 

Syntax: 

num1 += num2;

Example: 

a += 10

This means,
a = a + 10

Java

// Java code to illustrate "+="
 
import java.io.*;
 
class Assignment {
    public static void main(String[] args)
    {
 
        // Declaring variables
        int num1 = 10, num2 = 20;
 
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
 
        // Adding & Assigning values
        num1 += num2;
 
        // Displaying the assigned values
        System.out.println("num1 = " + num1);
    }
}

                    

Output
num1 = 10
num2 = 20
num1 = 30

Note: The compound assignment operator in Java performs implicit type casting. Let’s consider a scenario where x is an int variable with a value of 5.

int x = 5;

If you want to add the double value 4.5 to the integer variable x and print its value, there are two methods to achieve this:

Method 1: x = x + 4.5

Method 2: x += 4.5

As per the previous example, you might think both of them are equal. But in reality, Method 1 will throw a runtime error stating the “incompatible types: possible lossy conversion from double to int“, Method 2 will run without any error and prints 9 as output.

Reason for the Above Calculation

Method 1 will result in a runtime error stating “incompatible types: possible lossy conversion from double to int.” The reason is that the addition of an int and a double results in a double value. Assigning this double value back to the int variable x requires an explicit type casting because it may result in a loss of precision. Without the explicit cast, the compiler throws an error.

Method 2 will run without any error and print the value 9 as output. The compound assignment operator += performs an implicit type conversion, also known as an automatic narrowing primitive conversion from double to int. It is equivalent to x = (int) (x + 4.5), where the result of the addition is explicitly cast to an int. The fractional part of the double value is truncated, and the resulting int value is assigned back to x.

It is advisable to use Method 2 (x += 4.5) to avoid runtime errors and to obtain the desired output.

Same automatic narrowing primitive conversion is applicable for other compound assignment operators as well, including -=, *=, /=, and %=.

3. (-=) operator: 

This operator is a compound of ‘-‘ and ‘=’ operators. It operates by subtracting the variable’s value on the right from the current value of the variable on the left and then assigning the result to the operand on the left. 

Syntax: 

num1 -= num2;

Example: 

a -= 10

This means,
a = a - 10

Java

// Java code to illustrate "-="
 
import java.io.*;
 
class Assignment {
    public static void main(String[] args)
    {
 
        // Declaring variables
        int num1 = 10, num2 = 20;
 
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
 
        // Subtracting & Assigning values
        num1 -= num2;
 
        // Displaying the assigned values
        System.out.println("num1 = " + num1);
    }
}

                    

Output
num1 = 10
num2 = 20
num1 = -10

4. (*=) operator:

 This operator is a compound of ‘*’ and ‘=’ operators. It operates by multiplying the current value of the variable on the left to the value on the right and then assigning the result to the operand on the left. 

Syntax: 

num1 *= num2;

Example: 

a *= 10
This means,
a = a * 10

Java

// Java code to illustrate "*="
 
import java.io.*;
 
class Assignment {
    public static void main(String[] args)
    {
 
        // Declaring variables
        int num1 = 10, num2 = 20;
 
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
 
        // Multiplying & Assigning values
        num1 *= num2;
 
        // Displaying the assigned values
        System.out.println("num1 = " + num1);
    }
}

                    

Output
num1 = 10
num2 = 20
num1 = 200

5. (/=) operator: 

This operator is a compound of ‘/’ and ‘=’ operators. It operates by dividing the current value of the variable on the left by the value on the right and then assigning the quotient to the operand on the left. 

Syntax: 

num1 /= num2;

Example: 

a /= 10
This means,
a = a / 10

Java

// Java code to illustrate "/="
 
import java.io.*;
 
class Assignment {
    public static void main(String[] args)
    {
 
        // Declaring variables
        int num1 = 20, num2 = 10;
 
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
 
        // Dividing & Assigning values
        num1 /= num2;
 
        // Displaying the assigned values
        System.out.println("num1 = " + num1);
    }
}

                    

Output
num1 = 20
num2 = 10
num1 = 2

6. (%=) operator: 

This operator is a compound of ‘%’ and ‘=’ operators. It operates by dividing the current value of the variable on the left by the value on the right and then assigning the remainder to the operand on the left. 

Syntax: 

num1 %= num2;

Example: 

a %= 3

This means,
a = a % 3

Java

// Java code to illustrate "%="
 
import java.io.*;
 
class Assignment {
    public static void main(String[] args)
    {
 
        // Declaring variables
        int num1 = 5, num2 = 3;
 
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
 
        // Moduling & Assigning values
        num1 %= num2;
 
        // Displaying the assigned values
        System.out.println("num1 = " + num1);
    }
}

                    

Output
num1 = 5
num2 = 3
num1 = 2


Last Updated : 13 Sep, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads