Download presentation
Presentation is loading. Please wait.
1
More on the Selection Structure
Chapter 6: More on the Selection Structure
2
Objectives Include a nested selection structure in pseudocode and in a flowchart Code a nested selection structure Recognize common logic errors in selection structures Include a multiple-alternative selection structure in pseudocode and in a flowchart Code a multiple-alternative selection structure in C++ An Introduction to Programming with C++, Seventh Edition
3
Making Decisions True and false paths of a selection structure can contain other selection structures Inner selection structures are referred to as nested selection structures; contained (nested) within an outer selection structure Nested selection structures are used when more than one decision needs to be made before choosing an instruction Inner (nested) selection structures are indented within their outer selection structures An Introduction to Programming with C++, Seventh Edition
4
Making Decisions (cont’d.)
Figure 6-1 Problem that requires a selection structure An Introduction to Programming with C++, Seventh Edition
5
Making Decisions (cont’d.)
Figure 6-2 Problem that requires a nested selection structure An Introduction to Programming with C++, Seventh Edition
6
Making Decisions (cont’d.)
Figure 6-3 Problem that requires two nested selection structures An Introduction to Programming with C++, Seventh Edition
7
Flowcharting a Nested Selection Structure
Outer and inner selection structures can be thought of as making primary and secondary decisions, respectively Secondary decision is called such because whether it needs to be made depends on the result of a primary decision An Introduction to Programming with C++, Seventh Edition
8
Flowcharting a Nested Selection Structure (cont’d.)
Figure 6-6 Problem specification for voter eligibility problem An Introduction to Programming with C++, Seventh Edition
9
Flowcharting a Nested Selection Structure (cont’d.)
Figure 6-6 A correct solution to the voter eligibility problem An Introduction to Programming with C++, Seventh Edition
10
Coding a Nested Selection Structure
Code for nested selection structures uses the if and else statements Nested selection structures can be placed in either if or else statement blocks Correct tabbing makes code easier to read An Introduction to Programming with C++, Seventh Edition
11
Logic Errors in Selection Structures
Three common logic errors made when writing selection structures Using a compound condition rather than a nested selection structure Reversing the outer and nested decisions Using an unnecessary nested selection structure An Introduction to Programming with C++, Seventh Edition
12
Logic Errors in Selection Structures (cont’d.)
Figure 6-11 A correct algorithm for the bonus problem An Introduction to Programming with C++, Seventh Edition
13
First Logic Error Using a compound condition rather than a nested selection structure Ignores the hierarchy between two sub-conditions – One applies only if the other is a certain value An Introduction to Programming with C++, Seventh Edition
14
First Logic Error (cont’d.)
Figure 6-17 Correct algorithm and incorrect algorithm containing the first logic error An Introduction to Programming with C++, Seventh Edition
15
First Logic Error (cont’d.)
Figure 6-18 Desk-check table for the incorrect algorithm in Figure 6-17 An Introduction to Programming with C++, Seventh Edition
16
Second Logic Error Reversing outer and nested selection structures
Figure 6-19 Correct algorithm and an incorrect algorithm containing the second logic error An Introduction to Programming with C++, Seventh Edition
17
Third Logic Error Using an unnecessary nested selection structure
Often will produce the correct result, but will be inefficient An Introduction to Programming with C++, Seventh Edition
18
Third Logic Error (cont’d.)
Figure 6-21 Correct algorithm and an incorrect algorithm containing the third logic error An Introduction to Programming with C++, Seventh Edition
19
Multiple-Alternative Selection Structures
Sometimes problems require a selection structure that chooses between several alternatives Called multiple-alternative selection structures or extended selection structures In a flowchart, diamond symbol is used; has multiple flowlines leading out, not just two Each flowline represents a possible path, marked with the value that represents that path if/else statements can be used to implement it; uses multiple if else clauses An Introduction to Programming with C++, Seventh Edition
20
Multiple-Alternative Selection Structures (cont’d.)
Figure 6-25 Problem specification for Kindlon High School problem An Introduction to Programming with C++, Seventh Edition
21
Multiple-Alternative Selection Structures (cont’d.)
Figure 6-25 IPO chart for the Kindlon High School problem An Introduction to Programming with C++, Seventh Edition
22
Multiple-Alternative Selection Structures (cont’d.)
Figure 6-26 Flowchart for the Kindlon High School problem An Introduction to Programming with C++, Seventh Edition
23
Multiple-Alternative Selection Structures (cont’d.)
Figure 6-27 Two ways of coding the multiple-alternative selection structure from Figures 6-25 and 6-26 An Introduction to Programming with C++, Seventh Edition
24
The switch Statement Can sometimes use the switch statement to code a multiple-alternative selection structure Statement begins with switch keyword followed by a selector expression in parentheses Selector expression can contain any combination of variables, constants, functions, and operators Must result in a data type that is bool, char, short, int, or long Between opening and closing braces (after selector expression), there are one or more case clauses An Introduction to Programming with C++, Seventh Edition
25
The switch Statement (cont’d.)
Each case clause represents a different alternative and contains a value followed by a colon Can include as many case clauses as necessary Value for each case clause can be a literal constant, named constant, or an expression composed of literal and named constants Data type of the value should be the same data type as the selector expression An Introduction to Programming with C++, Seventh Edition
26
The switch Statement (cont’d.)
Each case clause contains one or more statements processed when selector expression matches that case’s value break statement tells computer to break out of switch at that point; must be the last statement of a case clause Without a break statement, computer continues to process instructions in later case clauses After processing break, computer processes next instruction after switch statement’s closing brace An Introduction to Programming with C++, Seventh Edition
27
The switch Statement (cont’d.)
Good programming practice to document end of switch with a comment (//end switch) Can also include one default clause; processed if selector expression does not match any values in case clauses default clause can appear anywhere, but usually entered as last clause If it is the last clause, a break statement is not needed at its end Otherwise, a break statement is needed to prevent computer from processing later case clauses An Introduction to Programming with C++, Seventh Edition
28
The switch Statement (cont’d.)
Figure 6-28 How to use the switch statement An Introduction to Programming with C++, Seventh Edition
29
The switch Statement (cont’d.)
Example similar to code in Figure 6-28 An Introduction to Programming with C++, Seventh Edition
30
Summary Can nest a selection structure within true or false path of another selection structure Three common logic errors when writing selection structures Using a compound condition instead of a nested selection structure Reversing the inner and outer selection structures Using an unnecessary nested selection structure An Introduction to Programming with C++, Seventh Edition
31
Summary (cont’d.) Some solutions require selection structures that choose from multiple alternatives; called multiple-alternative or extended selection structures Can code these either with if/else statements or the switch statement Diamond is used to represent multiple-alternative selection structures in a flowchart Has multiple flowlines leading out; each representing a possible path and marked with appropriate values An Introduction to Programming with C++, Seventh Edition
32
Summary (cont’d.) In a switch statement, the data type of the value in each case clause must be compatible with data type of selector expression Selector expression must evaluate to value of type bool, char, short, int, or long Most case clauses contain a break statement; tells the computer to leave the switch statement Good practice to mark end of switch statement with a comment (//end switch) An Introduction to Programming with C++, Seventh Edition
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.