Presentation is loading. Please wait.

Presentation is loading. Please wait.

Decision II. CSCE 1062 Outline  Boolean expressions  switch statement (section 4.8)

Similar presentations


Presentation on theme: "Decision II. CSCE 1062 Outline  Boolean expressions  switch statement (section 4.8)"— Presentation transcript:

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++


Download ppt "Decision II. CSCE 1062 Outline  Boolean expressions  switch statement (section 4.8)"

Similar presentations


Ads by Google