Presentation is loading. Please wait.

Presentation is loading. Please wait.

A First Book of C++ Chapter 4 Selection. Objectives In this chapter, you will learn about: –Relational Expressions –The if-else Statement –Nested if Statements.

Similar presentations


Presentation on theme: "A First Book of C++ Chapter 4 Selection. Objectives In this chapter, you will learn about: –Relational Expressions –The if-else Statement –Nested if Statements."— Presentation transcript:

1 A First Book of C++ Chapter 4 Selection

2 Objectives In this chapter, you will learn about: –Relational Expressions –The if-else Statement –Nested if Statements –The switch Statement –Common Programming Errors A First Book of C++ 4th Edition2

3 Relational Expressions All computers are able to compare numbers –Can be used to create an intelligence-like facility Relational expressions: expressions used to compare operands –Format: a relational operator connecting two variable and/or constant operands –Examples of valid relational expressions: Age > 40 length <= 50 flag == done A First Book of C++ 4th Edition3

4 Relational Expressions (cont'd.) A First Book of C++ 4th Edition4

5 Relational Expressions (cont'd.) Relational expressions (conditions): –Are evaluated to yield a numerical result –Condition that is true evaluates to 1 –Condition that is false evaluates to 0 Example: –The relationship 2.0 > 3.3 is always false; therefore, the expression has a value of 0 A First Book of C++ 4th Edition5

6 Logical Operators More complex conditions can be created using logical operators AND, OR, and NOT –Represented by the symbols: &&, ||, ! AND operator, && : –Used with two simple expressions –Example: (age > 40) && (term < 10) –Compound condition is true (has value of 1) only if age > 40 and term < 10 A First Book of C++ 4th Edition6

7 Logical Operators (cont'd.) OR operator, || : –Used with two simple expressions –Example: (age > 40) || (term < 10) –Compound condition is true if age > 40 or if term < 10 or if both conditions are true NOT operator, ! : –Changes an expression to its opposite state –If expression is true, then !expression is false A First Book of C++ 4th Edition7

8 Logical Operators (cont'd.) A First Book of C++ 4th Edition8

9 A Numerical Accuracy Problem Avoid testing equality of single- and double- precision values and variables using == operator –Tests fail because many decimals cannot be represented accurately in binary For real operands: –The expression operand_1 == operand_2 should be replaced by: abs(operand_1 – operand_2) < EPSILON –If this expression is true for very small EPSILON, then the two operands are considered equal A First Book of C++ 4th Edition9

10 The if-else Statement Selects between two statements based on the results of a comparison General form: if (expression) statement1; else statement2; –If the value of expression is true, statement1 is executed –If the value is false, statement2 is executed A First Book of C++ 4th Edition10

11 A First Book of C++ 4th Edition11

12 The if-else Statement (cont'd.) Program 4.1 run twice with different input data –Result 1: Please type in the taxable income: 10000 Taxes are $ 200.0 0 –Result 2: Please type in the taxable income: 30000 Taxes are $ 650.00 A First Book of C++ 4th Edition12

13 Compound Statements A First Book of C++ 4th Edition13 Sequence of single statements between braces

14 A First Book of C++ 4th Edition14

15 Compound Statements (cont'd.) Output of Program 4.2 Enter the temperature to be converted: 212 Enter an f if the temperature is in Fahrenheit or a c if the temperature is in Celsius: f The equivalent Celsius temperature is 100.00 A First Book of C++ 4th Edition15

16 Block Scope Block of code: all statements contained within a compound statement Any variable declared within a block has meaning only between its declaration and the closing braces of the block Example with two blocks of code A First Book of C++ 4th Edition16

17 Block Scope (cont'd.) { // start of outer block int a = 25; int b = 17; cout << “The value of a is ” << a << “ and b is ” << b << endl; { // start of inner block double a = 46.25; int c = 10; cout << “a is now ” << a << “ b is now ” << b << “ and c is ” << c << endl; } // end of inner block cout << “a is now ” << a << “ and b is ” << b << endl; } // end of outer block A First Book of C++ 4th Edition17

18 Block Scope (cont'd.) Output of block scope example: The value of a is 25 and b is 17 a is now 46.25 b is now 17 and c is 10 a is now 25 and b is 17 A First Book of C++ 4th Edition18

19 One-Way Selection A modification of if-else that omits else part –if statement takes the form: if (expression) statememt; Modified form called a one-way statement –The statement following if (expression) is executed only if the expression is true –The statement may be a compound statement A First Book of C++ 4th Edition19

20 One-Way Selection (cont'd.) A First Book of C++ 4th Edition20

21 One-Way Selection (cont'd.) Program 4.3 run twice with different input data –Result 1: Please type in car number and mileage: 256 3562.8 Car 256 is over the limit. End of program output. –Result 2: Please type in car number and mileage: 23 2562.8 End of program output. A First Book of C++ 4th Edition21

22 Problems Associated with the if-else Statement Most common problems: –Misunderstanding what an expression is –Using the assignment operator, =, in place of the relational operator, == Example: –Initialize age = 18 –The expression ( age = 40 ) sets age to 40 Does not compare age to 40 Has a value of 40 (true) Produces invalid results if used in if-else statement A First Book of C++ 4th Edition22

23 Problems Associated with the if-else Statement (cont'd.) Example (cont'd.): –The expression ( age == 40 ) compares age to 40 Has a value of 0 (false) –This expression will produce a valid test in an if- else statement A First Book of C++ 4th Edition23

24 Nested if Statements if-else statement can contain simple or compound statements –Another if-else statement can be included Example: if (hours < 9) { if (distance > 500) cout << “snap”; } else cout << “pop”; A First Book of C++ 4th Edition24

25 The if-else Chain Format: if (expression_1) statement1; else if (expression_2) statement2; else statement3; Chain can be extended indefinitely by making last statement another if-else statement A First Book of C++ 4th Edition25

26 A First Book of C++ 4th Edition26

27 The switch Statement Format: switch (expression) { // start of compound statement case value_1:<- terminated with a colon statement1; statement2; break; case value_2: <- terminated with a colon statementm; break; default: <- terminated with a colon statementaa; } // end of switch and compound statement A First Book of C++ 4th Edition27

28 The switch Statement (cont'd.) Four new keywords used: –switch, case, default, and break Function: –Expression following switch is evaluated Must evaluate to an integer result –Result compared sequentially to alternative case values until a match found –Statements following matched case are executed –When break statement reached, switch terminates –If no match found, default statement block is executed A First Book of C++ 4th Edition28

29 A First Book of C++ 4th Edition29

30 The switch Statement (cont'd.) Program 4.6 results: Please type in two numbers: 12 3 Enter a select code: 1 for addition 2 for multiplication 3 for division : 2 The product of the numbers entered is 36 A First Book of C++ 4th Edition30

31 Common Programming Errors Using the assignment operator, =, in place of the relational operator, == Assuming that the if-else statement is selecting an incorrect choice when the problem is really the values being tested Using nested if statements without including braces to clearly indicate the desired structure A First Book of C++ 4th Edition31

32 Summary Relational expressions (conditions): –Are used to compare operands –A condition that is true has a value of 1 –A condition that is false has a value of 0 More complex conditions can be constructed from relational expressions using C++’s logical operators, && (AND), || (OR), and ! (NOT) if-else statements select between two alternative statements based on the value of an expression A First Book of C++ 4th Edition32

33 Summary (cont'd.) if-else statements can contain other if-else statements –If braces are not used, each else statement is associated with the closest unpaired if if-else chain: a multi-way selection statement –Each else statement (except for the final else ) is another if-else statement Compound statement: any number of individual statements enclosed within braces A First Book of C++ 4th Edition33

34 Summary (cont'd.) Variables have meaning only within the block where they are declared –Includes any inner blocks switch statement: multiway selection statement –The value of an integer expression is compared to a sequence of integer or character constants or constant expressions –Program execution transferred to first matching case –Execution continues until optional break statement is encountered A First Book of C++ 4th Edition34

35 Chapter Supplement: A Closer Look at Testing A comprehensive set of test runs would reveal all possible program errors –Ensuring that a program works correctly for any combination of input and computed data This goal is usually impossible –Except for extremely simple programs At a minimum, test data should include: –Suitable values for input data –Illegal input values that the program should reject –Limiting values that are checked in the program A First Book of C++ 4th Edition35


Download ppt "A First Book of C++ Chapter 4 Selection. Objectives In this chapter, you will learn about: –Relational Expressions –The if-else Statement –Nested if Statements."

Similar presentations


Ads by Google