27
Chapter 4: Control Structure SELECTION STATEMENTS

Chapter 4: Control Structures SELECTION STATEMENTS

Embed Size (px)

Citation preview

Page 1: Chapter 4: Control Structures SELECTION STATEMENTS

Chapter 4: Control Structures

SELECTION STATEMENTS

Page 2: Chapter 4: Control Structures SELECTION STATEMENTS

Chapter Objectives

Java Programming: From Problem Analysis to Program Design, D.S. Malik

2

• Learn about control structures.• Learn how to use the selection control

structures if, if…else, and switch in a program.

• Learn about short-circuit evaluation• Learn about loop statements

Page 3: Chapter 4: Control Structures SELECTION STATEMENTS

Control Structures

Java Programming: From Problem Analysis to Program Design, D.S. Malik

3

• Three methods of processing a program:– In sequence– Branching– Looping

• Branch: Altering the flow of program execution by making a selection or choice.

• Loop: Altering the flow of program execution by repeating statements.

Page 4: Chapter 4: Control Structures SELECTION STATEMENTS

Java Programming: From Problem Analysis to Program Design, D.S. Malik4

Control Structures

Page 5: Chapter 4: Control Structures SELECTION STATEMENTS

Selection

Java Programming: From Problem Analysis to Program Design, D.S. Malik

5

• One-way selection• Two-way selection• Compound (block of) statements• Multiple selections (nested if)• Conditional operator• switch structures

Page 6: Chapter 4: Control Structures SELECTION STATEMENTS

One-Way Selection

Java Programming: From Problem Analysis to Program Design, D.S. Malik

6

• Syntax:if (expression) statement

• Expression referred to as decision maker.• Statement referred to as action statement.

Page 7: Chapter 4: Control Structures SELECTION STATEMENTS

Java Programming: From Problem Analysis to Program Design, D.S. Malik7

Example 1//Determine the absolute value of an integerimport java.util.*;

public class AbsoluteValue{ static Scanner console = new Scanner (System.in); public static void main(String[] args) { int number, temp; System.out.println("Enter an integer:"); number = console.nextInt(); temp = number; if (number < 0) number = -number; System.out.println("The absolute value of " + temp + " is " + number); }}

One-Way Selection

Page 8: Chapter 4: Control Structures SELECTION STATEMENTS

Short-Circuit Evaluation

Java Programming: From Problem Analysis to Program Design, D.S. Malik

8

• 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.

• Example:• (x>y) || (x==5) // if (x>y) is true, (x==5) is not evaluated

• (a==b) && (x>=7) // if (a==b) is false, (x>=7) is not evaluated

• (x>0) && ( (y = z*2) > 5) // if (x>0) is false, ((y = z*2) > 5) is not evaluated and the value of y will not change

Page 9: Chapter 4: Control Structures SELECTION STATEMENTS

Two-Way Selection

Java Programming: From Problem Analysis to Program Design, D.S. Malik

9

• Syntax:if (expression)

statement1else

statement2• else statement must be paired with an if.

Page 10: Chapter 4: Control Structures SELECTION STATEMENTS

Two-Way Selection

Java Programming: From Problem Analysis to Program Design, D.S. Malik

10

Page 11: Chapter 4: Control Structures SELECTION STATEMENTS

Two-Way Selection

Java Programming: From Problem Analysis to Program Design, D.S. Malik

11

Example 4-13

if (hours > 40.0) wages = 40.0 * rate + 1.5 * rate * (hours - 40.0); else wages = hours * rate;

Page 12: Chapter 4: Control Structures SELECTION STATEMENTS

Two-Way Selection

Java Programming: From Problem Analysis to Program Design, D.S. Malik

12Example 4-14//The following statement shows an example of a syntax errorif (hours > 40.0); //Line 1 wages = 40.0 * rate + 1.5 * rate *(hours - 40.0); //Line 2else //Line 3 wages = hours * rate; //Line 4

• Because a semicolon follows the closing parenthesis of the if statement (Line 1), the else statement stands alone.

• The semicolon at the end of the if statement (see Line 1) ends the if statement.

• The statement at Line 2 separates the else clause from the if statement. That is, else is by itself.

• Because there is no separate else statement in Java, this code generates a syntax error.

Page 13: Chapter 4: Control Structures SELECTION STATEMENTS

Compound (Block of) Statements

Java Programming: From Problem Analysis to Program Design, D.S. Malik

13

Syntax:{

statement1statement2

.

.

.statementn

}

Page 14: Chapter 4: Control Structures SELECTION STATEMENTS

Compound (Block of) Statements

14

if (age > 18){ System.out.println("Eligible to vote."); System.out.println("No longer a minor.");} else{ System.out.println("Not eligible to vote."); System.out.println("Still a minor.");}

Page 15: Chapter 4: Control Structures SELECTION STATEMENTS

Multiple Selection: Nested if

15

Java Programming: From Problem Analysis to Program Design, D.S. Malik

• Syntax:if (expression1)

statement1else

if (expression2)

statement2

else

statement3

• Multiple if statements can be used if there is more than two alternatives

• else is associated with the most recent if that does not have an else.

Page 16: Chapter 4: Control Structures SELECTION STATEMENTS

Multiple Selection: Nested if

Java Programming: From Problem Analysis to Program Design, D.S. Malik

16Example 4-19// Assume that score is of type int. Based on the value

of score, the following code determines the grade

if (score >= 90)System.out.println (“Grade is A”);

else if (score >=80 ) System.out.println (“Grade is B”);

else if (score >=70 ) System.out.println (“Grade is C”);

else if (score >=60 ) System.out.println (“Grade is D”);

else System.out.println (“Grade is F”);

Page 17: Chapter 4: Control Structures SELECTION STATEMENTS

Multiple Selection: Nested if

Java Programming: From Problem Analysis to Program Design, D.S. Malik

17

Example 4-21if( tempreture >= 50 )if (tempreture >= 80)

System.out.println (“Good swimming day”);

elseSystem.out.println (“Good golfing

day”);

Page 18: Chapter 4: Control Structures SELECTION STATEMENTS

Multiple Selection: Nested if

Java Programming: From Problem Analysis to Program Design, D.S. Malik

18

Example 4-20

if( tempreture >= 50 )if (tempreture >= 80)

System.out.println (“Good swimming day”);

elseSystem.out.println (“Good golfing

day”);elseSystem.out.println (“Good tennis day”);

Page 19: Chapter 4: Control Structures SELECTION STATEMENTS

Multiple Selection: Nested if

Java Programming: From Problem Analysis to Program Design, D.S. Malik

19

Example 4-22//The following code does not work as intended. For example

if GPA=3.8if ( GPA >= 2.0 )

if (GPA >= 3.9) System.out.println (“Dean Honor list”);

else System.out.println (“GPA below graduation requirement”);-------------------------------------------------------------

-//This is the correct way of writing the above codeif ( GPA >= 2.0 ){

if (GPA >= 3.9) System.out.println (“Dean Honor list”);

}else System.out.println (“GPA below graduation requirement”);

Page 20: Chapter 4: Control Structures SELECTION STATEMENTS

Conditional (? :) Operator

Java Programming: From Problem Analysis to Program Design, D.S. Malik

20

• Ternary operator• Syntax:

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

condition is expression2.Otherwise, the result of the condition is expression3.

Page 21: Chapter 4: Control Structures SELECTION STATEMENTS

Conditional (? :) Operator

Java Programming: From Problem Analysis to Program Design, D.S. Malik

21

Example:

int x = 5 , y =3 , min ;if (x< = y) min = x ;

else min = y ;The above statement can be written using the conditional

operator : min = ( x<= y ) ? x : y ;

Page 22: Chapter 4: Control Structures SELECTION STATEMENTS

Switch Structures

Java Programming: From Problem Analysis to Program Design, D.S. Malik

22

• Expression is also known as selector.

• Expression can be an identifier.

• Value can only be integral.

switch (expression){ case value1: statements1

break; case value2: statements2

break; ... case valuen: statementsn

break; default: statements}

Page 23: Chapter 4: Control Structures SELECTION STATEMENTS

Switch With break Statements

Java Programming: From Problem Analysis to Program Design, D.S. Malik

23

switch (N) {

case 1: x = 10;

break;

case 2: x = 20;

break;

case 3: x = 30;

break;

}

x = 10;x = 10;

false

trueN == 1 ?

x = 20;x = 20;

x = 30;x = 30;

N == 2 ?

N == 3 ?

false

false

true

true

break;break;

break;break;

break;break;

Page 24: Chapter 4: Control Structures SELECTION STATEMENTS

Switch With No break Statements

Java Programming: From Problem Analysis to Program Design, D.S. Malik

24

switch (N) {

case 1: x = 10;

case 2: x = 20;

case 3: x = 30;

}

x = 10;x = 10;

false

trueN == 1 ?

x = 20;x = 20;

x = 30;x = 30;

N == 2 ?

N == 3 ?

false

false

true

true

Page 25: Chapter 4: Control Structures SELECTION STATEMENTS

Switch With Break And Default Statements

Java Programming: From Problem Analysis to Program Design, D.S. Malik

25

Example 4-23switch (grade){ case 'A': System.out.println("The grade is A."); break; case 'B': System.out.println("The grade is B."); break; case 'C': System.out.println("The grade is C."); break; case 'D': System.out.println("The grade is D."); break; case 'F': System.out.println("The grade is F."); break; default: System.out.println("The grade is invalid.");}

Page 26: Chapter 4: Control Structures SELECTION STATEMENTS

Switch With Break And Default Statements

Java Programming: From Problem Analysis to Program Design, D.S. Malik

26

Example 4-23

switch (grade){ case 'A': System.out.println("The grade is A."); break; case 'B': System.out.println("The grade is B."); break; case 'C': System.out.println("The grade is C."); break; case 'D': System.out.println("The grade is D."); break; case 'F': System.out.println("The grade is F."); break; default: System.out.println("The grade is invalid.");}

Page 27: Chapter 4: Control Structures SELECTION STATEMENTS

Example 4-23 With Nested If

Java Programming: From Problem Analysis to Program Design, D.S. Malik

27

if (grade == 'A') System.out.println("The grade is A.");else if (grade == 'B') System.out.println("The grade is B.");else if (grade == 'C') System.out.println("The grade is C.");else if (grade == 'D') System.out.println("The grade is D.");else if (grade == 'F') System.out.println("The grade is F.");else System.out.println("The grade is invalid.");