Вы находитесь на странице: 1из 42

Java Programming: From Problem Analysis to Program Design, 3e

Chapter 4 Control Structures I: Selection

Chapter Objectives
Learn about control structures Examine relational and logical operators Explore how to form and evaluate logical (Boolean) expressions Learn how to use the selection control structures if, ifelse, and switch in a program
Java Programming: From Problem Analysis to Program Design, 3e 2

Control Structures
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 repetition of statement(s)
Java Programming: From Problem Analysis to Program Design, 3e 3

Flow of Execution

Java Programming: From Problem Analysis to Program Design, 3e

Relational Operators
Relational Operator
Allows you to make comparisons in a program Binary operator

Condition is represented by a logical expression in Java Logical expression: expression that has a value of either true or false
Java Programming: From Problem Analysis to Program Design, 3e 5

Relational Operators in Java

Java Programming: From Problem Analysis to Program Design, 3e

Relational Operators and Primitive Data Types


Can be used with integral and floating-point data types Can be used with the char data type Unicode Collating Sequence

Java Programming: From Problem Analysis to Program Design, 3e

Relational Operators and the Unicode Collating Sequence

Java Programming: From Problem Analysis to Program Design, 3e

Comparing Strings
class String
Method compareTo Method equals

Given string str1 and str2


an integer 0 if string str1 str2 str1.compareTo(str2)! 0 if string str1 is equal to string str2 integer " 0 if string str1 " str2 an
Java Programming: From Problem Analysis to Program Design, 3e 9

Comparing Strings (continued)


String String String String String str1 str2 str3 str4 str5 = = = = = "Hello"; "Hi"; "Air"; "Bill"; "Bigger";

Java Programming: From Problem Analysis to Program Design, 3e

10

Comparing Strings (continued)

Java Programming: From Problem Analysis to Program Design, 3e

11

Comparing Strings (continued)

Java Programming: From Problem Analysis to Program Design, 3e

12

Logical (Boolean) Operators

Java Programming: From Problem Analysis to Program Design, 3e

13

Logical (Boolean) Operators (continued)

Java Programming: From Problem Analysis to Program Design, 3e

14

Logical (Boolean) Operators (continued)

Java Programming: From Problem Analysis to Program Design, 3e

15

Logical (Boolean) Operators (continued)

Java Programming: From Problem Analysis to Program Design, 3e

16

Precedence of Operators

Java Programming: From Problem Analysis to Program Design, 3e

17

Short-Circuit Evaluation
Definition: 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

Java Programming: From Problem Analysis to Program Design, 3e

18

Selection
One-Way Selection Two-Way Selection Compound (Block of) Statements Multiple Selections (Nested if) Conditional Operator switch Structures
Java Programming: From Problem Analysis to Program Design, 3e 19

One-Way Selection
Syntax:
if (expression) statement

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

Java Programming: From Problem Analysis to Program Design, 3e

20

One-Way Selection (continued)

Java Programming: From Problem Analysis to Program Design, 3e

21

One-Way Selection (continued)


Example 4-11 //Program to determine the absolute value of an integer import javax.swing.JOptionPane; public class AbsoluteValue { public static void main(String[] args) { int number; int temp; String numString; numString = JOptionPane.showInputDialog ("Enter an integer:"); //Line 1 number = Integer.parseInt(numString); //Line 2 temp = number; //Line 3
Java Programming: From Problem Analysis to Program Design, 3e 22

One-Way Selection (continued)


if (number < 0) number = -number;

//Line 4 //Line 5

JOptionPane.showMessageDialog(null, "The absolute value of " + temp + " is " + number, "Absolute Value", //Line 6 JOptionPane.INFORMATION_MESSAGE); System.exit(0); }

Java Programming: From Problem Analysis to Program Design, 3e

23

Two-Way Selection
Syntax: if (expression) statement1 else statement2 else statement must be paired with an if
Java Programming: From Problem Analysis to Program Design, 3e 24

Two-Way Selection (continued)

Java Programming: From Problem Analysis to Program Design, 3e

25

Two-Way Selection (continued)


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

Java Programming: From Problem Analysis to Program Design, 3e

26

Two-Way Selection (continued)


Example 4-15
if (hours > 40.0); //Line 1 wages = 40.0 * rate + 1.5 * rate * (hours - 40.0); //Line 2 else //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, so the statement at Line 2 separates the else clause from the if statement; that is, else is by itself Since there is no separate else statement in Java, this code generates a syntax error
Java Programming: From Problem Analysis to Program Design, 3e 27

Compound (Block of) Statements


Syntax

Java Programming: From Problem Analysis to Program Design, 3e

28

Compound (Block of) Statements (continued)


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."); }

Java Programming: From Problem Analysis to Program Design, 3e

29

Multiple Selection: Nested if


Syntax
if (expression1) statement1 else if (expression2) statement2 else statement3

Else associated with most recent incomplete if Multiple if statements can be used in place of ifelse statements May take longer to evaluate
30

Java Programming: From Problem Analysis to Program Design, 3e

Conditional (? :) Operator
Ternary operator Syntax
expression1 ? expression2 : expression3

If expression1 = true, then the result of the condition is expression 2; otherwise, the result of the condition is expression3

Java Programming: From Problem Analysis to Program Design, 3e

31

switch Structures

Java Programming: From Problem Analysis to Program Design, 3e

32

switch Structures (continued)


In Java, switch, case, break, and default are reserved words In a switch structure, the expression is evaluated first The value of the expression is then used to perform the actions specified in the statements that follow the reserved word case The expression is usually an identifier The value of the identifier or the expression can be only integral, that is, an integer
Java Programming: From Problem Analysis to Program Design, 3e 33

switch Structures (continued)


Integral values also include values of type char The expression is sometimes called the selector; its value determines which statements are selected for execution A particular case value must appear only once One or more statements may follow a case label, so you do not need to use braces to turn multiple statements into a single compound statement
Java Programming: From Problem Analysis to Program Design, 3e 34

switch Structures (continued)


The break statement may or may not appear after each statements1, statements2, ..., statementsn A switch structure may or may not have the default label

Java Programming: From Problem Analysis to Program Design, 3e

35

switch Structures (continued)

Java Programming: From Problem Analysis to Program Design, 3e

36

switch Structures (continued)

Java Programming: From Problem Analysis to Program Design, 3e

37

switch Structures (continued)


Example 4-24 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;

Java Programming: From Problem Analysis to Program Design, 3e

38

switch Structures (continued)


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."); }

Java Programming: From Problem Analysis to Program Design, 3e

39

Programming Example: Cable Company Billing


Input: customers account number, customer code, number of premium channels to which customer subscribes, number of basic service connections (in case of business customers) Output: customers account number and the billing amount
Java Programming: From Problem Analysis to Program Design, 3e 40

Programming Example: Cable Company Billing (continued)


Solution:
Prompt user for information Use switch statements based on customers type Use an if statement nested within switch statement to determine amount due by each customer

Java Programming: From Problem Analysis to Program Design, 3e

41

Chapter Summary
Control structures are used to process programs Logical expressions and order of precedence of operators are used in expressions Compare strings If statements ifelse statements switch structures Proper syntax for using control statements
Java Programming: From Problem Analysis to Program Design, 3e 42

Вам также может понравиться