Debre Tabor University
Faculty of Technology
Department of Electrical and Computer
Engineering
Object oriented programing
Lecture 3 : JAVA OPERATORS
What are Operators?
• Operators are special symbols used for
– mathematical functions
– assignment statements
– logical comparisons
• Examples:
3 + 5 // uses + operator
14 + 5 – 4 * (5 – 3) // uses +, -, * operators
• Expressions can be combinations of variables, primitives
and operators that result in a value
The Operator Groups
• There are 5 different groups of operators:
– Arithmetic operators
– Assignment operator
– Increment/Decrement operators
– Relational operators
– Conditional operators
Arithmetic Operators
• Java has 6 basic arithmetic operators
+ add
- subtract
* multiply
/ divide
% modulo (remainder)
^ exponent (to the power of)
• Order of operations (or precedence) when
evaluating an expression is the same as you
learned in school (PEMDAS).
Order of Operations
• Example: 10 + 15 / 5;
• The result is different depending on whether the
addition or division is performed first
(10 + 15) / 5 = 5
10 + (15 / 5) = 13
Without parentheses, Java will choose the
second case
• Note: you should be explicit and use
parentheses to avoid confusion
Integer Division
• In the previous example, we were
lucky that (10 + 15) / 5 gives an
exact integer answer (5).
• But what if we divide 63 by 35?
• Depending on the data types of the
variables that store the numbers,
we will get different results.
Integer Division Example
• int i = 63;
int j = 35;
System.out.println(i / j);
Output: 1
• double x = 63;
double y = 35;
System.out.println(x / y);
Ouput: 1.8
• The result of integer division is just
the integer part of the quotient!
Assignment Operator
• The basic assignment operator (=) assigns
the value of expr to var.
var = expr ;
• Java allows you to combine arithmetic and
assignment operators into a single
operator.
• Examples:
x = x + 5; is equivalent to x += 5;
y = y * 7; is equivalent to y *= 7;
Increment/Decrement Operators
count = count + 1;
can be written as:
++count; or count++;
++ is called the increment operator.
count = count - 1;
can be written as:
--count; or count--;
-- is called the decrement operator.
The increment/decrement operator has two forms:
– The prefix form ++count, --count
first adds 1 to the variable and then continues to any other
operator in the expression
int numOranges = 5;
int numApples = 10;
int numFruit;
numFruit = ++numOranges + numApples;
numFruit has value 16
numOranges has value 6
– The postfix form count++, count--
first evaluates the expression and then adds 1 to the variable
int numOranges = 5;
int numApples = 10;
int numFruit;
numFruit = numOranges++ + numApples;
numFruit has value 15
numOranges has value 6
Relational (Comparison) Operators
• Relational operators compare two values
• Produces a boolean value (true or false)
depending on the relationship
operation is true when . . .
a > b a is greater than b
a >= b a is greater than or equal to b
a == b a is equal to b
a != b a is not equal to b
a <= b a is less than or equal to b
a < b a is less than b
Examples of Relational Operations
int x = 3;
int y = 5;
boolean result;
1) result = (x > y);
now result is assigned the value false because
3 is not greater than 5
2) result = (15 == x*y);
now result is assigned the value true because the product of
3 and 5 equals 15
3) result = (x != x*y);
now result is assigned the value true because the product of
x and y (15) is not equal to x (3)
Conditional Operators
Symbol Name
&& AND
|| OR
! NOT
• Conditional operators can be referred to as boolean
operators, because they are only used to combine
expressions that have a value of true or false.
Truth Table for Conditional Operators
x y x && y x || y !x
True True True True False
True False False True False
False True False True True
False False False False True
Examples of Conditional Operators
boolean x = true;
boolean y = false;
boolean result;
1. Let result = (x && y);
now result is assigned the value false
(see truth table!)
2. Let result = ((x || y) && x);
(x || y) evaluates to true
(true && x) evaluates to true
now result is assigned the value true
Using && and ||
• Examples:
(a && (b++ > 3))
(x || y)
• Java will evaluate these expressions from
left to right and so will evaluate
a before (b++ > 3)
x before y
• Java performs short-circuit evaluation:
it evaluates && and || expressions from left
to right and once it finds the result, it stops.
Short-Circuit Evaluations
(a && (b++ > 3))
What happens if a is false?
• Java will not evaluate the right-hand expression (b++
> 3) if the left-hand operator a is false, since the
result is already determined in this case to be false.
This means b will not be incremented!
(x || y)
What happens if x is true?
• Similarly, Java will not evaluate the right-hand operator
y if the left-hand operator x is true, since the result is
already determined in this case to be true.
POP QUIZ
1) What is the value of number? -12
int number = 5 * 3 – 3 / 6 – 9 * 3;
2) What is the value of result? false
int x = 8;
int y = 2;
boolean result = (15 == x * y);
3) What is the value of result? true
boolean x = 7;
boolean result = (x < 8) && (x > 4);
4) What is the value of numCars? 27
int numBlueCars = 5;
int numGreenCars = 10;
int numCars = numGreenCars++ + numBlueCars + ++numGreeenCars;
References
• Summary of Java operators
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/opsummary.html
• Order of Operations (PEMDAS)
1. Parentheses
2. Exponents
3. Multiplication and Division from left to right
4. Addition and Subtraction from left to right