Chapter 6: More on the Selection Structure Introduction to Programming with C++ Fourth Edition
Objectives Include a nested selection structure in pseudocode and in a flowchart Code a nested selection structure in C++ Recognize common logic errors in selection structures Introduction to Programming with C++, Fourth Edition
Objectives (continued) Include the switch form of the selection structure in pseudocode and in a flowchart Code the switch form of the selection structure in C++ Format numeric output in C++ Introduction to Programming with C++, Fourth Edition
Nested Selection Structures Selection structure within another selection structure Used when more than one decision must be made before the appropriate action can be taken Primary decision - always made by the outer selection structure Secondary decision - always made by the inner (nested) selection structure Introduction to Programming with C++, Fourth Edition
Nested Selection Structures (continued) Introduction to Programming with C++, Fourth Edition
Nested Selection Structures (continued) Introduction to Programming with C++, Fourth Edition
Logic Errors in Selection Structures Logic errors are commonly made as a result of the following mistakes: Using a logical operator rather than a nested selection structure Reversing the primary and secondary decisions Using an unnecessary nested selection structure Introduction to Programming with C++, Fourth Edition
Logic Errors in Selection Structures (continued) Introduction to Programming with C++, Fourth Edition
Logic Errors in Selection Structures (continued) Test Data for Desk-Checking Data for first desk-check Status: F Years: 4 Data for second desk-check Years: 15 Data for third desk-check Status: P Years: 11 Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Correct Algorithm Introduction to Programming with C++, Fourth Edition
Using a Logical Operator Rather Than a Nested Selection Structure One common error made when writing selection structures is to use a logical operator in the outer selection structure’s condition when a nested selection structure is needed Introduction to Programming with C++, Fourth Edition
Correct Algorithm and an Incorrect Algorithm Containing the First Logic Error Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Incorrect Algorithm Introduction to Programming with C++, Fourth Edition
Reversing the Primary and Secondary Decisions Common error: putting the secondary decision in the outer selection structure, and putting the primary decision in the nested selection structure Introduction to Programming with C++, Fourth Edition
Correct Algorithm and an Incorrect Algorithm Containing the Second Logic Error Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Incorrect Algorithm Introduction to Programming with C++, Fourth Edition
Using an Unnecessary Nested Selection Structure In most cases, a selection structure containing this error still produces the correct results However, it is less efficient than selection structures that are properly structured Introduction to Programming with C++, Fourth Edition
Correct Algorithm and an Inefficient Algorithm Containing the Third Logic Error Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Inefficient Algorithm Introduction to Programming with C++, Fourth Edition
Using the if/else Form to Create Multiple-Path Selection Structures Introduction to Programming with C++, Fourth Edition
Two Versions of the C++ Code for the Grade Problem Introduction to Programming with C++, Fourth Edition
Two Versions of the C++ Code for the Grade Problem (continued) Introduction to Programming with C++, Fourth Edition
Using the switch Form to Create Multiple-Path Selection Structures Introduction to Programming with C++, Fourth Edition
Using the switch Form Switch statement: Begins with switch followed by an open brace Ends with a closing brace Switch clause - keyword switch followed by a selectorExpression enclosed in parentheses selectorExpression – Can contain any combination of variables, constants, functions, methods, and operators Must result in a bool, char, short, int, or long Introduction to Programming with C++, Fourth Edition
Using the switch Form (continued) Each clause in the switch statement contains a value followed by a colon Data type of the value should be compatible with the data type of the selectorExpression Break statement - tells the computer to leave (“break out of”) the switch statement at that point Introduction to Programming with C++, Fourth Edition
Formatting Numeric Output Use setiosflags stream manipulator to display a program’s numeric output in fixed-point notation only Must use #include <iomanip> directive and using std::ios; and using std::setiosflags; Use setprecision to control the number of decimal places displayed Introduction to Programming with C++, Fourth Edition
Formatting Numeric Output (continued) Introduction to Programming with C++, Fourth Edition
Formatting Numeric Output (continued) Introduction to Programming with C++, Fourth Edition
Summary Nested selection structure: Selection structure within another selection structure Used when more than one decision must be made before the appropriate action can be taken Three common logic errors in selection structures Logic errors are commonly made as a result of the following mistakes: Using a logical operator rather than a nested selection structure Reversing the primary and secondary decisions Using an unnecessary nested selection structure Introduction to Programming with C++, Fourth Edition
Summary (continued) The switch form of the selection structure is often simpler to use if there are many paths from which to choose Format output using stream manipulators Introduction to Programming with C++, Fourth Edition