Download presentation
Presentation is loading. Please wait.
Published byBrent Sims Modified over 9 years ago
1
Decision II
2
CSCE 1062 Outline Boolean expressions switch statement (section 4.8)
3
CSCE 1063 Table 4.7 English Conditions as C++ Expressions
4
CSCE 1064 Boolean Assignment bool type values are true and false Assignment statements have general form variable = expression; E.g.: (for variable called same of type bool) same = true; same = (x == y);
5
CSCE 1065 Comparing Characters and Strings Letters are in typical alphabetical order Upper and lower case significant Digit characters are also ordered as expected String objects require string library Compares corresponding pairs of characters
6
CSCE 1066 Table 4.8 Examples of Comparisons
7
CSCE 1067 Table 4.6 Operator Precedence
8
CSCE 1068 Example a flagxyz 3.04.02.0false x + y / z <= 3.5 2.0 5.0 false
9
CSCE 1069 Example b flagxyz 3.04.02.0false ! flag || (y + z >= x - z) 6.01.0 true
10
CSCE 10610 Short Circuit Evaluation (single == ‘y’ && gender == ‘m’ && age >= 18) If single condition is false, gender and age conditions are not evaluated. (single == ‘y’ || gender == ‘m’ || age >= 18) If single condition is true, gender and age conditions are not evaluated.
11
CSCE 10611 Additional Assignment Examples inRange = (n > -10) && (n < 10); isLetter = ((‘A’ <= ch) && (ch <= ‘Z’)) || ((‘a’ <= ch) && (ch <= ‘z’)); even = (n % 2 == 0);
12
CSCE 10612 Writing bool Values Boolean values are represented by integer values in C++ 0 for false non-zero (typically 1) for true Outputting (or inputting) bool type values is done with integers
13
CSCE 10613 Complements of Relational Operators = > <= = = !=
14
CSCE 10614 Examples ExpressionComplement Flag!Flag x>=1 !(x>=1) or x<1 x>5 !(x>5) or x<=5
15
CSCE 10615 Complements of Boolean Expressions (cont’d) Complementing (or getting opposite of) boolean/logical expressions can be done in 2 ways: using logical operator ! (not) using DeMorgan’s Theorem
16
CSCE 10616 DeMorgan’s Theorem !(exp 1 && exp 2 ) is the same as !exp 1 || !exp 2 !(exp 1 || exp 2 ) is the same as !exp 1 && !exp 2 It explains how to complement a compound logical expression
17
CSCE 10617 Example Expression z <= x && x <= y Complement !(z <= x && x <= y) the equivalent using DeMorgan’s theorem !(z <= x) || !(x <= y) which is equivalent to (without the not “!”) z > x || x > y
18
CSCE 10618 Table 4.7 English Conditions as C++ Expressions
19
CSCE 10619 Multiple Decision Exercise Please write a multiple decision C++ segment to evaluate a letter grade, input by the user, and output the corresponding phrase according to the following table: Grade Output A or aExcellent B or bGood C or cFair D or d or F or fPoor anything elseInvalid grade
20
CSCE 10620 if (grade == ‘A’ || grade == ‘a’) cout << “Excellent” << endl; else if (grade == ‘B’ || grade == ‘b’) cout << “Good” << endl; else if (grade == ‘C’ || grade == ‘c’) cout << “Fair” << endl; else if (grade == ‘D’ || grade == ‘d’ || grade == ‘F’ || grade == ‘f’) cout << “Poor” << endl; else cout << “Invalid grade” << endl; switch (grade) { case ‘A’: case ‘a’: cout << “Excellent” << endl; break; case ‘B’: case ‘b’: cout << “Good” << endl; break; case ‘C’: case ‘c’: cout << “Fair” << endl; break; case ‘D’: case ‘d’:case ‘F’: case ‘f’: cout << “Fair” << endl; break; default: cout << “Invalid grade” << endl; } Code Segments switch selector case label optional
21
CSCE 10621 The switch Control Statement switch (selector ) { case label 1 : statements 1 ; break; case label 2 : statements 2 ; break;... case label 10 : statements 10 ; break; default: statements d ; // optional }
22
CSCE 10622 switch Control Statement (cont’d) Used in C++ to select one of several alternatives. Alternative to multiple if statements in some cases. Especially useful when the selection (called the switch selector) is based on the value of a single variable or a simple expression. switch selector must be of type int, char, or bool only.
23
CSCE 10623 switch Control Statement (cont’d) switch selector value compared to each case label. When there is an exact match, statements for that case are executed. If no case label matches the selector, the entire switch body is skipped unless it contains a default case label. break is typically used between cases to avoid fall through.
24
CSCE 10624 Listing 4.5 switch statement to determine life expectancy of a lightbulb
25
CSCE 10625 switch Control Statement (cont’d) You have to use a formula to convert ranges to an integer, so as to be able to use a switch statement. For example, if you are asked to use a switch statement to give the following corresponding outputs for some given ranges: Final GPA Honorary Degree 3.80 <= GPA <= 4.00Highest Honours 3.60 <= GPA < 3.80High Honours 3.40 <= GPA < 3.60Honours 2.00 <= GPA < 3.40 Pass with no Honours
26
CSCE 10626 switch Control Statement (cont’d) Here is one example for a formula that works, together with its corresponding case statements, provided that you check the range of GPA when input before: int x = GPA *10; switch (x) { case 40: case 39: case 38: cout<<“Highest Honours”; break; case 37: case 36: cout<<“High Honours”; break; case 35: case 34: cout<<“Honours”; break; default: cout<<“Pass with no Honours”; break; }
27
CSCE 10627 Next lecture will be about looping construct in C++
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.