35
ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Embed Size (px)

Citation preview

Page 1: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

ICT1412 - Introduction to Programming

Chapter 4 – Control Structures I

Page 2: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 2

Control Structures

Three methods of processing a program:1. In sequence

statements are executed one after another in order

2. Branching altering the flow of program execution by

making a selection or choice

3. Looping altering the flow of program execution by

repetition of statement(s)

Page 3: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 3

Flow of Execution

Page 4: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 4

Examples of Conditionals

Note: the following are not actual Java statements

1) if (score is greater than or equal to 90)grade is A

2) if (hours worked are less than or equal to 40)wages = rate * hours

otherwisewages = (rate * 40) + 1.5 * (rate * (hours - 40))

3) if (temperature is greater than 21 degrees and it is not raining)

recommended activity is fishing

Page 5: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 5

Relational Operators

Relational Operator allows you to make comparisons in a

program binary operator

needs two operands

Condition is represented by a logical (Boolean) expression expression that has a value of either true or

false

Page 6: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 6

Relational Operators (Cont.)

Less than < Greater than > Equal to ==

Note: not assignment ‘=‘

Not equal to != Less than or equal to <= Greater than or equal to >=

Page 7: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 7

Comparing Characters

In Java, characters are ordered according to the Unicode / ASCII character set

‘a’ comes before ‘b’ in the character set, so we can say ‘a’ < ‘b’

Order space character (' ') digits (‘0’, ‘1’, …) uppercase lowercase

Application: sort alphabetically

Page 8: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 8

Comparing Characters (Cont.)

'a' > 'A'

'6' < 7

' ' <= 's'

97 > 65 true

54 < 7 false

32 <= 115 true

Page 9: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 9

Comparing Floating-Point

Be careful when using the equality (==) to compare floating point numbers

Every bit in the representation must be equal computer can only store a certain number of

digits after the decimal If the numbers are results of computation,

it’s unlikely that two floating point numbers will be exactly equal

Page 10: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 10

Comparing Floating-Point (Cont.)

3.0 / 7.0

2.0 / 7.0

(3.0 / 7.0) + (2.0 / 7.0) + (2.0 / 7.0) == 1

0.4285714285714285

false

0.2857142857142857

If we did this math with exact arithmetic, this expression would be true

0.9999999999999999

Page 11: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 11

Comparing Strings

Strings are compared on a character-by-character basis first character not in common determines

how the strings compare e.g. : "Airplane" is less than "Airport"

If two strings have different lengths, and one is a substring of the other, the shorter one is evaluated as less e.g. : "Air" is less than "Airplane"

Page 12: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 12

Comparing Strings (Cont.) Don't use relational operators (==, <, >)

for Strings

str1.compareTo (str2)Returns an integer value:< 0 if str1 < str20 if str1 = str2>0 if str1 > str2

str1.equals (str2)Returns a boolean value of true or false

method parameter

Page 13: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 13

Questions

Given String str = "Homer";

str.compareTo("Marge")

str.equals("homer")

str.compareTo("Bart")

negative value

false

positive value

Page 14: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 14

Boolean Expressions Named for George Boole (1815-1864), the

founder of symbolic logic A boolean expression is an expression that can

be evaluated to either true or false Remember that booleans in Java are

true false

Examples of boolean expressions: 2+2 is not equal to 5 a is equal to 0 10 is less than 5

Page 15: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 15

Boolean Operators

NOT ! (unary)!(2+2==5)

AND && (binary)(2+2==5) && (1+1==2)

OR || (binary)(2+2==5) || (1+1==2)

true

false

true

Page 16: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 16

NOT Operator

Page 17: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 17

AND and OR Operators

Page 18: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 18

Boolean ExpressionsExamples

Simple: 2+2 is not equal to 5 2+2 != 5 10 is less than 5 10 < 5 'A' is equal to 7 'A' == 7

Compound: a is equal to 3 and b is equal to 5

(a==3) && (b==5)

x is not equal to 2 or y is less than 4 (x!=2) || (y<4)

s is not equal to b and t is greater than or equal to 3 or t is less than 0

(s!=b) && (t>=3) || (t<0)

Page 19: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 19

Short Circuited Operators

The processing of logical AND (&&) and logical OR (||) is “short-circuited”

A process in which the computer evaluates a logical expression from left to right and stops as soon as the value of the expression is known, the remaining right operand is not evaluated

count != 0 && total/count > MAX

Page 20: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 20

Precedence of Operators

Page 21: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 21

Boolean Expressions Common Error

Logical expression that evaluates to true if the value of num is between 0 and 10

0 <= num <= 10

0 <= num && num <= 10

incorrect syntax

correct syntax

Page 22: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 22

Questions

1. What type of primitive variable can the result of a logical expression be stored in?

2. Under what conditions would the expression (ch >= 'A' && ch <= 'Z') evaluate to false?

3. What method do you use to compare two Strings?

4. Why is 'a' greater than 'A'?

boolean

ch < 'A' or ch > 'Z'

compareTo

Because 'a' comes after 'A' in the ASCII (or Unicode) character table

Page 23: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 23

Questions (Cont.) Given the following declarations, evaluate each

Boolean expression:int count = 0, sum = 54;double x = 4.3, y = 1.2;boolean wrong = true;

1. (wrong && sum > 60)

2. ((x > 5) || !(sum == 55))

3. !((y > 1.0) && (x < 4))

4. ((count != 4) || (sum > 100) && wrong)

false

true

true

true

(false || !(false))

!(true && false)

(true || false && true)

(true && false)

(true || false)

Page 24: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 24

Conditional Statements

Let us choose which statement will be executed next also called selection statements

Java's conditional statements: the if statement the if-else statement the switch statement (next chapter)

Page 25: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 25

One-Way Selection Syntax: if (expression)

statement

Page 26: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 26

The if Statement

if ( condition ) statement;

if is a Javareserved word

The condition must be a boolean expression.It must evaluate to either true or false.

If the condition is true, the statement is executed.If it is false, the statement is skipped.

Page 27: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 27

The if Statement

if (sum > MAX) delta = sum - MAX;System.out.println ("The sum is " + sum);

First, the condition is evaluated. The value of sumis either greater than the value of MAX, or it is not.

If the condition is true, the assignment statement is executed.If it is not, the assignment statement is skipped.

Either way, the call to println is executed next.

Page 28: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 28

Block Statements

Syntax:{

statement1statement2

.

.

.statementn

}

We use curly braces to group a set of individual statements.

This way we can have multiple statements execute based on a decision.

If we don't use curly braces, only a single statement will be executed based on the result of a decision.

Page 29: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 29

The if Statementif (sum > MAX)

delta = sum - MAX;System.out.println ("The sum is " + sum);

A

if (sum > MAX){

delta = sum - MAX;}System.out.println ("The sum is " + sum);

B

if (sum > MAX){

delta = sum - MAX;System.out.println ("The sum is " + sum);

}

C

Page 30: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 30

Curly Braces

int num = 87, max = 25;if (num >= max*2){

System.out.println ("apple");}

System.out.println ("orange");System.out.println ("pear");

int num = 87, max = 25;if (num >= max*2)

System.out.println ("apple");System.out.println ("orange");

System.out.println ("pear");

Page 31: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 31

Watch out!

if (score >= 90);

grade = "A";

No matter the result of the condition,grade will be assigned "A". The semicolonafter the if statement is a semantic error.

Page 32: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 32

Two-Way Selection

Page 33: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 33

The if-else Statement

if ( condition ) statement1;else statement2;

If the condition is true, statement1 is executed; if the condition is false, statement2 is executed

One or the other will be executed, but not both

Page 34: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 34

The if-else Statement (example)

if (height <= MAX)

{

adjustment = 0;

}

else

{

adjustment = MAX-height;

}

Page 35: ICT1412 - Introduction to Programming Chapter 4 – Control Structures I

Prepared by K.T. Ng 35

Conditional (? :) Operator Ternary operator Syntax

expression1 ? expression2 : expression3 If expression1 = true, then the result of the

condition is expression 2otherwise, the result of the condition is expression3

e.g. max = (a >= b)? a : b; is equivalent to

if (a >= b) max = a;

else max = b;