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.
A.Variables
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.
A.Variables
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.
A.Variables
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.
A.The
Thevariable
variable
isisallocated
allocatedinin
memory.
memory.
number ???
???
B.
B.The
Thevalue
value237
237
isisassigned
assignedtoto
number.
number
number.
number 237
int number; A
A
number = 237; B
B C.
C.The
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;
System.out.println(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