Upload
denis-watkins
View
233
Download
5
Embed Size (px)
Citation preview
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
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.
Java Programming: From Problem Analysis to Program Design, D.S. Malik4
Control Structures
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
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.
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
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
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.
Two-Way Selection
Java Programming: From Problem Analysis to Program Design, D.S. Malik
10
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;
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.
Compound (Block of) Statements
Java Programming: From Problem Analysis to Program Design, D.S. Malik
13
Syntax:{
statement1statement2
.
.
.statementn
}
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.");}
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.
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”);
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”);
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”);
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”);
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.
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 ;
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}
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;
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
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.");}
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.");}
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.");