Core Java

Arithmetic Operators in java

In this section, we will learn about Arithmetic Operator Precedence and Operator Associativity.

Operator Precedence

Precedence decides which operator will be evaluated first in a case where more than one operator is present in the same calculation.

Operator Precedence Table

Operators Precedence(High to Low)
postfix expr++ expr
unary ++expr —expr +expr –expr ~ !
multiplicative * / %
additive + –
shift << >> >>>
relational < > <= >= instanceof
equality == !=
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
ternary ? :
assignment = += -= *= /= %= &= ^= |= <<= >>= >>>=

Example of Precedence

/*
 * Here we will see the effect of precedence in operators life
 */
class OperatorPrecedenceExample {

	public static void main(String args[]) {
		int i = 40;
		int j = 80;
		int k = 40;

		int l = i + j / k;
		/*
		 * In above calculation we are not using any bracket. So which operator
		 * will be evaluated first is decided by Precedence. As precedence of
		 * divison(/) is higher then plus(+) as per above table so divison will
		 * be evaluated first and then plus.
		 *
		 * So the output will be 42.
		 */

		System.out.println("value of L :" + l);

		int m = (i + j) / k;
		/*
		 * In above calculation brackets are used so precedence will not come in
		 * picture and plus(+) will be evaluated first and then divison()/. So
		 * output will be 3
		 */

		System.out.println("Value of M:" + m);
	}
}

Operator Associativity

If two operators have the same precedence in the calculation then Associativity of the operators will be used to decide which operator will be executed first.

Example of Associativity

package jbt.bean;

/*
 * Here we will see the effect of precedence in operators life
 */
public class OperatorAssociativityExample {

	public static void main(String args[]) {
		int i = 40;
		int j = 80;
		int k = 40;

		int l = i / k * 2 + j;
		/*
		 * In above calculation we are not using any bracket. And there are two
		 * operator of same precedence(divion and multiplication) so which
		 * operator(/ or *) will be evaluated first is decided by association.
		 * Associativity of * & / is left to right. So divison will be evaluated
		 * first then multiplication.
		 *
		 * So the output will be 82.
		 */

		System.out.println("value of L :" + l);

		int m = i / (k * 2) + j;
		/*
		 * In above calculation brackets are used so associativity will not come
		 * in picture and multiply(*) will be evaluated first and then
		 * divison()/. So output will be 80
		 */

		System.out.println("Value of M:" + m);
	}

}

 

Operators in Java

Let us discuss each operator individually.

Assignment (=) and  Arithmetic operators(+, -, *, /) work the same way as they do in other programming languages, so we will not discuss them here. The precedence for  ‘/‘  and  ‘*‘ operators is higher than sum(+) or minus() or modular division(%)

Author

56 thoughts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to top Search
Social Share