Decision II
Outline
Boolean expressions
switch statement (section 4.8)
CSCE 106
2
Table 4.7
CSCE 106
English Conditions as C++
Expressions
3
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);
CSCE 106
4
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
CSCE 106
5
Table 4.8
CSCE 106
Examples of Comparisons
6
Table 4.6
CSCE 106
Operator Precedence
7
Example a
x
y
z
flag
3.0
4.0
2.0
false
x + y / z <= 3.5
2.0
5.0
false
CSCE 106
8
Example b
x
y
z
flag
3.0
4.0
2.0
false
! flag || (y + z >= x - z)
true
6.0
1.0
true
true
CSCE 106
9
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.
CSCE 106
10
Additional Assignment Examples
inRange = (n > -10) && (n < 10);
isLetter = ((‘A’ <= ch) && (ch <= ‘Z’)) ||
((‘a’ <= ch) && (ch <= ‘z’));
even = (n % 2 == 0);
CSCE 106
11
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
CSCE 106
12
Complements of Relational
Operators
<
>
==
CSCE 106
>=
<=
!=
13
Examples
Expression
Flag
x>=1
x>5
CSCE 106
Complement
!Flag
!(x>=1) or x<1
!(x>5) or x<=5
14
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
CSCE 106
15
DeMorgan’s Theorem
It explains how to complement a compound
logical expression
!(exp1 && exp2)
!(exp1 || exp2)
is the same as
is the same as
!exp1 || !exp2
!exp1 && !exp2
CSCE 106
16
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
CSCE 106
17
Table 4.7
CSCE 106
English Conditions as C++
Expressions
18
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
A or a
B or b
C or c
D or d or F or f
anything else
CSCE 106
Output
Excellent
Good
Fair
Poor
Invalid grade
19
Code Segments
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;
CSCE 106
switch selector
switch (grade)
case label
{
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;
optional
default:
cout << “Invalid grade” << endl;
}
20
The switch Control Statement
switch (selector )
{
case label1: statements1;
break;
case label2: statements2;
break;
.
.
.
case label10: statements10;
break;
default: statementsd;
// optional
}
CSCE 106
21
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.
CSCE 106
22
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.
CSCE 106
23
Listing 4.5
switch statement to determine
life expectancy of a lightbulb
CSCE 106
24
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
3.80 <= GPA <= 4.00
3.60 <= GPA < 3.80
3.40 <= GPA < 3.60
2.00 <= GPA < 3.40
CSCE 106
Honorary Degree
Highest Honours
High Honours
Honours
Pass with no Honours
25
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;
}
CSCE 106
26
Next lecture will be about
looping construct in C++
CSCE 106
27
© Copyright 2026 Paperzz