49
Chapter 2: Java Fundamentals Operators

Chapter 2: Java Fundamentals

  • Upload
    hachi

  • View
    106

  • Download
    3

Embed Size (px)

DESCRIPTION

Chapter 2: Java Fundamentals. Operators. Content. Group of Operators Arithmetic Operators Assignment Operator Order of Precedence Increment/Decrement Operators Relational Operators Logical Operators Operator precedence Casting. Operators. Operators are special symbols used for: - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 2:  Java Fundamentals

Chapter 2: Java Fundamentals

Operators

Page 2: Chapter 2:  Java Fundamentals

Content

Page 2

Group of Operators Arithmetic Operators Assignment Operator Order of Precedence Increment/Decrement Operators Relational Operators Logical Operators Operator precedence Casting

Page 3: Chapter 2:  Java Fundamentals

Operators

Page 3

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 4: Chapter 2:  Java Fundamentals

Groups of Operators

Page 4

There are 5 different groups of operators: Arithmetic Operators Assignment Operator Increment / Decrement Operators Relational Operators Logical Operators

Page 5: Chapter 2:  Java Fundamentals

Java Arithmetic Operators

Page 5

Addition +Subtraction –Multiplication Division /Remainder (modulus ) %

Page 6: Chapter 2:  Java Fundamentals

Arithmetic Operators

Page 6

The following table summarizes the arithmetic operators available in Java.

This is an integer division where the fractional part is truncated.

Page 7: Chapter 2:  Java Fundamentals

Page 7

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 8: Chapter 2:  Java Fundamentals

Page 8

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 9: Chapter 2:  Java Fundamentals

Order of Precedence

Page 9

( ) evaluated first, inside-out

, /, or % evaluated second, left-to-right

+, evaluated last, left-to-right

Page 10: Chapter 2:  Java Fundamentals

Basic Assignment Operator

Page 10

We assign a value to a variable using the basic assignment operator (=).

Assignment operator stores a value in memory. The syntax is

leftSide = rightSide ;

Examples:i = 1;

start = i;

sum = firstNumber + secondNumber;avg = (one + two + three) / 3;

Allways it is a variable identifier.

It is either a literal | a variable identifier | an expression.

Page 11: Chapter 2:  Java Fundamentals

The Right Side of the Assignment Operator

Page 11

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 12: Chapter 2:  Java Fundamentals

Assigning Literals

Page 12

In this case, the literal is stored in the space memory allocated for the variable at the left side.

int firstNumber=1, secondNumber;firstNumber = 234;secondNumber = 87;

A

B

firstNumber 1

secondNumber ???

A. Variables are allocated in memory.

A. Variables are allocated in memory.

B. Literals are assigned to variables.

B. Literals are assigned to variables.

firstNumber 234

secondNumber 87Code

State of Memory

Page 13: Chapter 2:  Java Fundamentals

Assigning Variables

Page 13

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.

int firstNumber=1, i;firstNumber = 234;i = firstNumber;

A

B

firstNumber 1

i ???

A. Variables are allocated in memory.

A. Variables are allocated in memory.

B. values are assigned to variables.

B. values are assigned to variables.

firstNumber 234

i 234Code

State of Memory

Page 14: Chapter 2:  Java Fundamentals

Assigning Expressions

Page 14

In this case, the result of the evaluation of the expression is stored in the space memory allocated for variable at the left side.

int first, second, sum;first = 234;second = 87;Sum = first + second

A

B

A. Variables are allocated in memory.

A. Variables are allocated in memory.

B. Values are assigned to variables.

B. Values are assigned to variables.

Code

State of Memory

first 1 second ???

sum ???

first 234 second 87

sum 321

Page 15: Chapter 2:  Java Fundamentals

Updating Data

Page 15

Code State of Memory

number ???

A. The variable is allocated in memory.

A. The variable is allocated in memory.

B. The value 237 is assigned to number.

B. The value 237 is assigned to number.

int number;

number = 237;

AB

Cnumber = 35;C. The value 35

overwrites the previous value 237.

C. The value 35 overwrites the

previous value 237.

number 237

number 35

Page 16: Chapter 2:  Java Fundamentals

Page 16

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

Example: Sum of two integer

Page 17: Chapter 2:  Java Fundamentals

Arithmetic/Assignment Operators

Page 17

Java allows combining arithmetic and assignment operators into a single operator:

Addition/assignment +=Subtraction/assignment =Multiplication/assignment =Division/assignment /=Remainder/assignment %=

Page 18: Chapter 2:  Java Fundamentals

Arithmetic/Assignment Operators

Page 18

The syntax isleftSide Op= rightSide ;

This is equivalent to:leftSide = leftSide Op rightSide ;

x%=5; x = x % 5; x*=y+w*z; x = x*(y+w*z);

Allways it is a variable identifier. It is an arithmetic

operator.

It is either a literal | a variable identifier | an expression.

Page 19: Chapter 2:  Java Fundamentals

Increment/Decrement Operators

Page 19

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 20: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

If the unary increment operator, ++, is used after the operand, e.g. x++, it is called a postincrement operator.

If the unary increment operator, ++, is used before the operand, e.g. ++x, it is called a preincrement operator.

Page 20

Page 21: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

It is important to note that when incrementing or decrementing a variable in a statement by itself, there is no difference between the pre and post forms of the operator.

It is only when a variable occurs in the context of a larger expression, that the pre and post forms of the operator have a different effect.

Page 21

Page 22: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

if we include the statement ++x as part of a larger statement, e.g.y = ++x;

the effect is :

The value in x is incremented.The new value x is stored in y.

Page 22

Page 23: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

x = 5;y = ++x;

After these statements are executed, x contains the value ?.y contains the value ?.

Page 23

Page 24: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

x = 5;y = ++x;

After these statements are executed, x contains the value 6.y contains the value 6.

Page 24

Page 25: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

However, if we include the statement x++ as part of a larger statement, e.g.y = x++;

the effect is somewhat different.

The old value of x is stored in y. The value in x is incremented

Page 25

Page 26: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

x = 5;y = x++;

After these statements are executed, x contains the value ?.y contains the value ?.

Page 26

Page 27: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

x = 5;y = x++;

After these statements are executed, x contains the value 6.y contains the value 5.

Page 27

Page 28: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

int z = 2;

System.out.println(z);

System.out.println(z++);

System.out.println(z);

System.out.println();

z = 2;

System.out.println(z);

System.out.println(++z);

System.out.println(z);

Page 28

Page 29: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

The output from this code would be:

2

2

3

2

3

3

Page 29

Page 30: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

If the unary increment operator, ++, is used after the operand, e.g. x++, it is called a postincrement operator.

Page 30

Page 31: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

The unary decrement operator, −−, also has two forms:postdecrement, x−−predecrement, −−x

Page 31

Page 32: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

The unary decrement operator, −−, also has two forms:postdecrement, x−−predecrement, −−x

The difference between the postdecrement and predecrement operators is the same as the difference between the postincrement and preincrement operators.

Page 32

Page 33: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

It is important to note that when incrementing or decrementing a variable in a statement by itself, there is no difference between the pre and post forms of the operator.

Page 33

Page 34: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

Increment the value in the integer variable x by 1 in four different ways.

1.x = x+1;

2.++x;

3.x++;

4.x += 1;

Page 34

Page 35: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

What is the value in i and n after the following code snippet has been executed?

int i=10;

int n = i++ % 5;

Page 35

Page 36: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

What is the value in i and n after the following code snippet has been executed?

int i=10;

int n = i++ % 5;

i has the value 11.

n has the value 0.

Page 36

Page 37: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

What would be the effect of changing the postincrement operator to a preincrement operator?

int i=10;

int n = ++i % 5;

Page 37

Page 38: Chapter 2:  Java Fundamentals

Pre-increment versus post-increment

What would be the effect of changing the postincrement operator to a preincrement operator?

int i=10;

int n = ++i % 5;

i has the value 11;

n has the value 1;

Page 38

Page 39: Chapter 2:  Java Fundamentals

39

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 39

Page 40: Chapter 2:  Java Fundamentals

Example

Page 40

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 41: Chapter 2:  Java Fundamentals

Logical Operators

Symbol Name&& AND

|| OR

! NOT

|| T F

T T T

F T F

&& T F

T T F

F F F

Page 41

Page 42: Chapter 2:  Java Fundamentals

Example

Page 42

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 trueresult is then assigned the value true

Page 43: Chapter 2:  Java Fundamentals

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 43

Page 44: Chapter 2:  Java Fundamentals

Type Conversion (Casting)

44

Used: to change one data type to another . to avoid implicit type coercion.

Syntax:

(dataTypeName) expression

Expression evaluated first, then the value is converted to dataTypeName

Page 45: Chapter 2:  Java Fundamentals

Type Conversion (Casting)

45

Examples:1. (int)(7.9 + 6.7) -> 142. (int)(7.9) + (int)(6.7) -> 133. (double)(17) -> 17.04. (double)(8+3) > (double)11 ->11.05. (double)(7) /2 = 7.0/2 -> 3.56. (double)(7/2) = 3.07. (int)(7.8+(double)(15)/2) ->

(int)15.3 ->15

Page 46: Chapter 2:  Java Fundamentals

46

Type Conversion (Casting)

8. (int)(‘A’) -> 65 9. (int)(‘8’) -> 5610. (char)(65) -> ‘A’ 11. (char)(56) -> ‘8’

Page 47: Chapter 2:  Java Fundamentals

Example -TRACE

Page 47

This example further illustrates how assignment statements and input statements manipulate variables. Consider the following declarations:

int firstNum;int secondNum;char ch;double z;Also suppose that the following statements execute in the order given:1. firstNum = 4;2. secondNum = 2 * firstNum + 6;3. z = (firstNum + 1) / 2.0;4. ch = 'A';5. firstNum = (int)(z) + 8;6. firstNum = secondNum-- ;

After statment 6 Variables

firstNumsecondNum

ch z

Page 48: Chapter 2:  Java Fundamentals

Data type compatibility

int x= 7.5; int x = false; int y=13

double z= y/2; double z =13.0;

int w=z/2;

double z= (double)y/2;

double w=z/2;int w = (int) z/2;

Page 48

Page 49: Chapter 2:  Java Fundamentals

Implicit VS Explicit type conversions

An implicit conversion is where the conversion happens without any syntax.

e.g.

int i = 999999999;

double d = i;

int x;

char c='a';x=c;

double>int>long>short>byte double>int>long>char

An explicit conversion is where you use some syntax to tell the program to do a conversion.

e.g.

int x=97; char c=(char)x;

int i = 999999999; byte b = (byte) i;

int y=(int)7.5;

Page 49

Implicit type conversions Explicit type conversions