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.
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 |
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 +.
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.
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
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
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!
Share this page on WhatsApp