Chapter 2: Java Fundamentals
Operators
Content
• Group of Operators
• Arithmetic Operators
• Assignment Operator
• Order of Precedence
• Increment/Decrement Operators
• Relational Operators
• Logical Operators
Page 2 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Operators
• Operators are special symbols used for:
– mathematical functions
– assignment statements
– logical comparisons
• Examples of operators:
–3+5 // uses + operator
– 14 + 5 – 4 * (5 – 3) // uses +, -, * operators
• Expressions: can be combinations of variables
and operators that result in a value
Page 3 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Groups of Operators
• There are 5 different groups of operators:
– Arithmetic Operators
– Assignment Operator
– Increment / Decrement Operators
– Relational Operators
– Logical Operators
Page 4 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Java Arithmetic Operators
Addition +
Subtraction –
Multiplication ∗
Division /
Remainder (modulus ) %
Page 5 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Arithmetic Operators
• The following table summarizes the
arithmetic operators available in Java.
This
Thisisisan
aninteger
integerdivision
division
where
where the fractionalpart
the fractional part
isistruncated.
truncated.
Page 6 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Example
Example of division issues:
10 / 3 gives 3
10.0 / 3 gives 3.33333
As we can see,
•if we divide two integers we get an integer
result.
•if one or both operands is a floating-point
value we get a floating-point result.
Page 7 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Modulus
Generates the remainder when you
divide two integer values.
5%3 gives 2 5%4 gives 1
5%5 gives 0 5%10 gives 5
Modulus operator is most commonly used
with integer operands. If we attempt to
use the modulus operator on floating-point
values we will garbage!
Page 8 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Order of Precedence
( ) evaluated first, inside-out
∗, /, or % evaluated second, left-to-right
+, − evaluated last, left-to-right
Page 9 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Basic Assignment Operator
• We assign a value to a variable using the basic
assignment operator (=).
• Assignment operator stores a value in memory.
• The syntax is
leftSide = rightSide ;
Allways eitheraaliteral
ItItisiseither literal| |aa
Allwaysititisisaa variable
variable variableidentifier
identifier| |
variableidentifier.
Examples: identifier. ananexpression.
expression.
i = 1;
start = i;
sum = firstNumber + secondNumber;
avg = (one + two + three) / 3;
Page 10 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
The Right Side of the
Assignment Operator
• The Java assignment operator assigns
the value on the right side of the
operator to the variable appearing on
the left side of the operator.
• The right side may be either:
• Literal: ex. i = 1;
• Variable identifier: ex. start = i;
• Expression: ex. sum = first + second;
Page 11 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Assigning Literals
• In this case, the literal is stored in the
space memory allocated for the variable
at the left side. A.
[Link]
Variablesare
are
allocated in memory.
allocated in memory.
firstNumber 11
A
A
secondNumber ???
???
int firstNumber=1, secondNumber;
firstNumber = 234;
secondNumber = 87; B
B B.
B. Literals
Literalsare
are
assigned
assignedtotovariables.
variables.
firstNumber 234
Code secondNumber 87
State of Memory
Page 12 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Assigning Variables
• In this case, the value of the variable at
the right side is stored in the space
memory allocated for the variable at the
left side. A.
[Link]
Variablesare
are
allocated in memory.
allocated in memory.
firstNumber 11
A
A
i ???
???
int firstNumber=1, i;
firstNumber = 234;
i = firstNumber; B
B B.
B. values
valuesare
areassigned
assigned
totovariables.
variables.
firstNumber 234
Code i 234
State of Memory
Page 13 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Assigning Expressions
• In this case, the result of the evaluation of
the expression is stored in the space
memory allocated for variable at the left
side. A.
[Link]
Variablesare
are
allocated
allocatedininmemory.
memory.
first 11 second ???
???
A
A
int first, second, sum; sum ???
???
first = 234;
second = 87; B
B B.
B. Values
Valuesare
are
Sum = first + second assigned
assignedtotovariables.
variables.
first 234
234 second 87
87
Code
sum 321
321
State of Memory
Page 14 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Updating Data
A.
[Link]
Thevariable
variable
isisallocated
allocatedinin
memory.
memory.
number ???
???
B.
[Link]
Thevalue
value237
237
isisassigned
assignedtoto
number.
number
number.
number 237
int number; A
A
number = 237; B
B C.
[Link]
Thevalue
value35
35
number = 35; C
C overwrites
overwritesthe
previous
the
previous value237.
value 237.
number 35
Code State of Memory
Page 15 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Example: Sum of two integer
public class Sum {
// main method
public static void main( String args[] ){
int a, b, sum;
a = 20;
b = 10;
sum = a + b;
[Link](a + ” + ” + b + “ = “ + sum);
} // end main
} // end class Sum
Page 16 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Arithmetic/Assignment Operators
Java allows combining arithmetic and
assignment operators into a single
operator:
Addition/assignment +=
Subtraction/assignment −=
Multiplication/assignment ∗=
Division/assignment /=
Remainder/assignment %=
Page 17 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Arithmetic/Assignment Operators
• The syntax is
eitheraaliteral
ItItisiseither literal| |aa
leftSide Op= rightSide ; variable
variableidentifier
identifier| |
ananexpression.
expression.
Allways
Allwaysititisisaa
variable
variableidentifier.
identifier. anarithmetic
ItItisisan arithmetic
operator.
operator.
• This is equivalent to:
leftSide = leftSide Op rightSide ;
• x%=5; ⇔ x = x % 5;
• x*=y+w*z; ⇔ x = x*(y+w*z);
Page 18 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Increment/Decrement Operators
Only use ++ or − − when a variable
is being incremented/decremented
as a statement by itself.
x++; is equivalent to x = x+1;
x--; is equivalent to x = x-1;
Page 19 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Relational Operators
• Relational operators compare two values
• They Produce 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
Page 20 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Example
• int x = 3;
• int y = 5;
• boolean result;
result = (x > y);
• now result is assigned the value false
because 3 is not greater than 5
Page 21 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Logical Operators
Symbol Name
&& AND
|| OR
! NOT
&& T F || T F
T T F T T T
F F F F T F
Page 22 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Example
boolean x = true;
boolean y = false;
boolean result;
result = (x && y);
result is assigned the value false
result = ((x || y) && x);
(x || y) evaluates to true
(true && x) evaluates to true
result is then assigned the value true
Page 23 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP
Operators Precedence
Parentheses (), inside-out
Increment/decrement ++, --, from left to right
Multiplicative *, /, %, from left to right
Additive +, -, from left to right
Relational <, >, <=, >=, from left to right
Equality ==, !=, from left to right
Logical AND &&
Logical OR ||
Assignment =, +=, -=, *=, /=, %=
Page 24 Dr. S. GANNOUNI & Dr. A. TOUIR Introduction to OOP