Java Arithmetic Operators

Java Arithmetic Operators

Arithmetic operators +, -, *, /, and % perform addition, subtraction, multiplication, division, and modulo operations. Arithmetic operators can be applied on any numeric type: byte, short, int, long, float, or double. Java also provides unary plus (+) and unary minus (-) to make a numeric value positive or negative. Numeric values are by default positive, if they are not led by any sign. Following table lists Java's arithmetic operators.

Table 1: Java arithmetic operators
Operator Operation Associativity
+

Addition (Also used for string concatenation.)

Left -> Right
- Subtraction Left -> Right
* Multiplication Left -> Right
/ Division Left -> Right
% Modulo (remainder) Left -> Right
- Unary Minus Right -> Left

Addition and String Concatenation Operator

The + operator adds two numbers. In addition to adding two numbers the + operator of Java is also used to concatenate two strings. Hence, if + is applied on two numeric quantities it performs arithmetic addition, and if it is applied on two strings it concatenates them together.

Here, it is very important to note about the + operator is, if either operand of + is a string, the other one is converted to a string as well. Be sure to use parentheses when you want to combine addition with concatenation.

The following piece of code demonstrates the string concatenation operation performed by + operator.

/* OperatorDemo.java */
public class OperatorDemo
{
    public static void main(String[] args)
    {
        int x = 10, y = 20;
 
        System.out.println("You may expect 30 but result is: " + x + y);
        System.out.println("To get 30, enclose x and y into brackets: " + (x + y));
    }
}
 
OUTPUT
======
You may expect 30 but result is: 1020
To get 30, enclose x and y into brackets: 30

In above example the first print statement concatenates variables x and y with string "You may expect 30 but result is: " then prints "You may expect 30 but result is: 1020" as output. But in second print statement x + y has been enclosed in brackets, hence the addition of x and y will take place first because brackets have higher precedence than +.

Subtraction and Multiplication Operator

The minus operator (-) is used in two flavours: binary and unary minus. As a binary operator, it subtracts its second operand from its first. For example, 10 - 4 evaluates to 6. When the - operator is used in unary form it makes the number negative.

The multiplication operator (*) multiplies its two operands. For example, 9*3 evaluates to 27.

Division Operator

The division operator (/) divides its first operand by its second. If both operands are integers, the result is an integer, and any remainder is lost. If either operand is a floating-point value, however, the result is a floating-point value. When dividing two integers, division by zero throws an ArithmeticException. For floating-point calculations, however, division by zero simply yields an infinite result or NaN:

 
7/3        // Evaluates to 2
7/3.0f     // Evaluates to 2.333333f
7/0        // Throws an ArithmeticException
7/0.0      // Evaluates to positive infinity
0.0/0.0    // Evaluates to NaN

Modulo Operator

The modulo operator (%) returns the remainder when the first operand is divided by the second operand an integral number of times. For example, 7%3 is 1. The sign of the result is the same as the sign of the first operand. In Java, modulo operator works on both integers and floating point values. For example, 32 % 5 yields 2 and 32.5 % 5 yields 2.5. When operating with integers, trying to compute a value modulo zero causes an ArithmeticException. When working with floating-point values, anything modulo 0.0 evaluates to NaN, as does infinity modulo anything.

In C and C++ modulo operator works only on integers.

The following Java program demonstrates the use of modulo operator.

// Demonstrating modulus operator
public class ModulusOperatorDemo
{
    public static void main(String[] args)
    {
        int x = 32;
        float y = 32.5f;
 
        System.out.println("x modulus 5 is: " + (x % 5));
        System.out.println("y modulus 5 is: " + (y % 5));;
    }
}
 
OUTPUT
======
x modulus 5 is: 2
y modulus 5 is: 2.5

Last Word

This tutorial explained Java's arithmetic operators (addition, subtraction, multiplication, division, and modulo operators). Hope you have enjoyed reading this tutorial, please do write us if you have any suggestion/comment or come across any error on this page. Thanks for reading!

References



Share this page on WhatsApp

Get Free Tutorials by Email

About the Author

is the founder and main contributor for cs-fundamentals.com. He is a software professional (post graduated from BITS-Pilani) and loves writing technical articles on programming and data structures.