47
Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming Fifth Edition Chapter 5 Making Decisions

Embed Size (px)

Citation preview

Page 1: Java Programming Fifth Edition Chapter 5 Making Decisions

Java ProgrammingFifth Edition

Chapter 5Making Decisions

Page 2: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 2

Objectives

• Learn about decision making

• Make decisions with the if and if...else structures

• Use multiple statements in an if or if...else structure

• Nest if and if...else statements

• Use AND and OR operators

Page 3: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 3

Objectives (continued)

• Learn to make accurate and efficient decisions

• Use the switch statement

• Use the conditional and NOT operators

• Understand precedence

Page 4: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 4

Understanding Decision Making

• Pseudocode– Use paper and pencil– Plan program’s logic

• By writing plain English statements

– Accomplish important steps in a given task– Use everyday language

• Flowchart– Steps in diagram form– Series of shapes connected by arrows

Page 5: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 5

Understanding Decision Making (continued)

• Flowchart (continued)– Programmers use variety of shapes to represent

different tasks• Rectangle to represent any unconditional step

• Diamond to represent any decision

• Sequence structure– One step follows another unconditionally– Cannot branch away or skip a step

Page 6: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 6

Page 7: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 7

Understanding Decision Making (continued)

• Decision structure – Involves choosing between alternative courses of

action – Based on some value within program

• All computer decisions are yes-or-no decisions

• Boolean values– Values true and false– Used in every computer decision

Page 8: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 8

Page 9: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 9

Making Decisions with theif and if...else Structures

• if statement– Simplest statement to make decision– Boolean expression appears within parentheses– Space between keyword if and opening

parentheses– Execution always continues to next independent

statement– Use double equal sign (==) to determine equivalency

Page 10: Java Programming Fifth Edition Chapter 5 Making Decisions

Making Decisions with theif and if...else Structures

(continued)

Java Programming, Fifth Edition 10

Page 11: Java Programming Fifth Edition Chapter 5 Making Decisions

Pitfall: Misplacing a Semicolon in an if Statement

• No semicolon at end of first line of if statement – if (someVariable == 10)– Statement does not end there

• When semicolon follows if directly– Empty statement contains only semicolon– Execution continues with the next independent

statement

Java Programming, Fifth Edition 11

Page 12: Java Programming Fifth Edition Chapter 5 Making Decisions

Pitfall: Misplacing a Semicolon in an if Statement (continued)

Java Programming, Fifth Edition 12

Page 13: Java Programming Fifth Edition Chapter 5 Making Decisions

Pitfall: Using the Assignment Operator Instead of the Equivalency Operator

• Attempt to determine equivalency– Using single equal sign– Rather than double equal sign– Illegal

• Can store Boolean expression’s value in Boolean variable– Before using in if statement

Java Programming, Fifth Edition 13

Page 14: Java Programming Fifth Edition Chapter 5 Making Decisions

Pitfall: Attempting to Compare Objects Using the Relational Operators

• Use standard relational operators to compare values of primitive data types– Not objects

• Can use equals and not equals comparisons (== and !=) with objects– To compare objects’ memory addresses instead of

values

Java Programming, Fifth Edition 14

Page 15: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 15

The if...else Structure

• Single-alternative if– Only perform action, or not

• Based on one alternative

• Dual-alternative if– Two possible courses of action

• if...else statement– Performs one action when Boolean expression

evaluates true– Performs different action when Boolean expression

evaluates false

Page 16: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 16

The if...else Structure (continued)

• if...else statement (continued)– Statement that executes when if is true or false

ends with semicolon– Vertically align keyword if with the keyword else– Illegal to code else without if– Depending on evaluation of Boolean expression

following if• Only one resulting action takes place

Page 17: Java Programming Fifth Edition Chapter 5 Making Decisions

The if...else Structure (continued)

Java Programming, Fifth Edition 17

Page 18: Java Programming Fifth Edition Chapter 5 Making Decisions

Using Multiple Statementsin an if or if...else Structure

• Execute more than one statement– Use pair of curly braces

• Place dependent statements within block

• Crucial to place curly braces correctly

• Any variable declared within block local to that block

Java Programming, Fifth Edition 18

Page 19: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 19

Page 20: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 20

Nesting if and if...else Statements

• Nested if statements– Statements in which if structure is contained inside

of another if structure– Use when two conditions must be met before some

action is taken

• Pay careful attention to placement of else clauses• else statements

– Always associated with if on “first in-last out” basis

Page 21: Java Programming Fifth Edition Chapter 5 Making Decisions

Nesting if and if...else Statements (continued)

Java Programming, Fifth Edition 21

Page 22: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 22

Using Logical AND and OR Operators

• Logical AND operator– Alternative to some nested if statements– Used between two Boolean expressions to

determine whether both are true– Written as two ampersands (&&)

• Include complete Boolean expression on each side

– Both Boolean expressions that surround operator • Must be true before action in statement can occur

Page 23: Java Programming Fifth Edition Chapter 5 Making Decisions

Using Logical AND and OR Operators (continued)

Java Programming, Fifth Edition 23

Page 24: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 24

Using Logical AND and OR Operators (continued)

• Logical OR operator– Action to occur when at least one of two conditions is

true– Written as ||

• Sometimes called pipes

Page 25: Java Programming Fifth Edition Chapter 5 Making Decisions

Using Logical AND and OR Operators (continued)

Java Programming, Fifth Edition 25

Page 26: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 26

Making Accurate and Efficient Decisions

• Range check– Series of if statements that determine whether:

• Value falls within specified range

– Java programmers commonly place each else of subsequent if on same line

– Within nested if...else• Most efficient to ask most likely question first

• Avoid asking multiple questions

Page 27: Java Programming Fifth Edition Chapter 5 Making Decisions

Making Accurate and Efficient Decisions (continued)

Java Programming, Fifth Edition 27

Page 28: Java Programming Fifth Edition Chapter 5 Making Decisions

Using AND and OR Appropriately

• Errors of beginning programmers – Using AND operator when they mean to use OR

• Example: no payRate value can ever be both below 5.65 and over 60 at same time

if(payRate < 5.65 && payRate > 60)

System.out.println("Error in pay rate");

• Use pipes “||” operator instead

– Using single ampersand or pipe• To indicate logical AND or OR

Java Programming, Fifth Edition 28

Page 29: Java Programming Fifth Edition Chapter 5 Making Decisions

Using the switch Statement

• switch statement– Alternative to series of nested if statements– Test single variable against series of exact integer or

character values

Java Programming, Fifth Edition 29

Page 30: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 30

Using the switch Statement (continued)

• Switch structure keywords– switch

• Starts structure

• Followed by test expression

• Enclosed in parentheses

– case • Followed by one of the possible values for test

expression and colon

Page 31: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 31

Using the switch Statement (continued)

• Switch structure keywords (continued)– break

• Optionally terminates switch structure at end of each case

– default • Used prior to any action if test variable does not match

any case• Optional

Page 32: Java Programming Fifth Edition Chapter 5 Making Decisions

Using the switch Statement (continued)

Java Programming, Fifth Edition 32

Page 33: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 33

Using the switch Statement (continued)

• break statements in switch structure– If break statement omitted

• Program finds match for test variable

• All statements within switch statement execute from that point forward

• case statement– No need to write code for each case– Evaluate char variables

• Ignore whether uppercase or lowercase

Page 34: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 34

Using the switch Statement (continued)

• Why use switch statements?– Convenient when several alternative courses of

action depend on single integer or character variable

– Use only when there are reasonable number of specific matching values to be tested

Page 35: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 35

Using the Conditionaland NOT Operators

• Conditional operator– Requires three expressions

• Separated with question mark and colon

– Used as abbreviated version of if...else structure

– Never required to use

• Syntax of conditional operatortestExpression ? trueResult : falseResult;

Page 36: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 36

Using the Conditionaland NOT Operators (continued)

• Boolean expression evaluated as true or false – If testExpression value true

• Entire conditional expression takes on value of expression following question mark

– If value false• Entire expression takes on value of false result

• Advantage of using conditional operator – Conciseness of statement

Page 37: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 37

Using the NOT Operator

• NOT operator– Written as exclamation point (!)– Negates result of any Boolean expression– When preceded by NOT operator

• Any expression evaluates as:– true becomes false– false becomes true

• Statements with NOT operator– Harder to read– Require double set of parentheses

Page 38: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 38

Understanding Precedence

• Combine as many AND or OR operators as needed

• Operator’s precedence – How expression is evaluated– Order agrees with common algebraic usage

• Arithmetic done first

• Assignment done last

• AND operator evaluated before OR operator

• Statements in parentheses evaluated first

Page 39: Java Programming Fifth Edition Chapter 5 Making Decisions

Understanding Precedence (continued)

Java Programming, Fifth Edition 39

Page 40: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 40

Understanding Precedence (continued)

• Two important conventions– Order in which operators are used – Always use parentheses

• Change precedence

• Or make your intentions clearer

Page 41: Java Programming Fifth Edition Chapter 5 Making Decisions

Understanding Precedence (continued)

Java Programming, Fifth Edition 41

Page 42: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 42

You Do It

• Using an if...else• Creating an Event class to use in a decision-

making application

• Writing an application that uses the Event class

• Using the switch statement

Page 43: Java Programming Fifth Edition Chapter 5 Making Decisions

Don’t Do It

• Don’t ignore subtleties in boundaries used in decision making

• Don’t use the assignment operator instead of the comparison operator

• Don’t insert a semicolon after the Boolean expression in an if statement

• Don’t forget to block a set of statements with curly braces when several statements depend on the if or the else statement

Java Programming, Fifth Edition 43

Page 44: Java Programming Fifth Edition Chapter 5 Making Decisions

Don’t Do It (continued)

• Don’t forget to include a complete Boolean expression on each side of an && or || operator

• Don’t try to use a switch structure to test anything other than an integer or character value

• Don’t forget a break statement if one is required

• Don’t use the standard relational operators to compare objects

Java Programming, Fifth Edition 44

Page 45: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 45

Summary

• if statement – Make decision based on Boolean expression

• Single-alternative if – Performs action based on one alternative

• Dual-alternative if– if...else– Performs one action when a Boolean expression

evaluates as true– Performs different action when expression evaluates

as false

Page 46: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 46

Summary (continued)

• AND operator – &&– Determines whether two expressions are both true

• OR operator – ||– Carries out some action even if only one of two

conditions true• switch statement

– Tests a single variable against a series of exact integer or character values

Page 47: Java Programming Fifth Edition Chapter 5 Making Decisions

Java Programming, Fifth Edition 47

Summary (continued)

• Conditional operator– Abbreviated version of if...else statement

• NOT operator – !– Negates result of any Boolean expression

• Operator precedence