Title: Chapter 5
1Chapter 5 Decision Making
2Structured Programming
- Sequence
- Selection
- Repetition
yes
no
3Decision Statements (also known as Selection
Statements)
- How to compare data values?
- Relational operators
- How to alter the sequence of program execution
based on the result? - if.. else statements
- How to deal with multiple choices?
- Switch statement
4Example
- A teacher wants to assign letter grade based on
percentage points. Percent range and the
corresponding letter grade are as shown in the
table below. Design a C solution (program) for
this problem.
Percent Range gt90 gt80 lt 90 gt70 lt80 gt60 lt70 lt50
Letter Grade A B C D F
5Relational Operators
- Operator Meaning
- lt Less than ?
- gt Greater than ?
- gt Greater than or equal to?
- lt Less than or equal to?
- Equal to?
- ! Not Equal to ?
- We will use relational operators to form
relational expression of conditions.
6Logical Operators
- ! not
- and
- or
- These operators are used to combine more than one
condition forming a complex condition.
7Three Logical Operators
- Exclamation mark !
- NOT (negation)
- unary
- Two ampersands
- AND (conjunction)
- binary
- Two vertical pipes
- OR (inclusive disjunction)
- binary
Lesson 5.4
8Logical NOT Operator
- Reverses result of relational expression
- Example ! (x y)
Evaluate relational expression, does 3 equal 7?
! ( false ) so negates to true
! ( true ) so negates to false
Lesson 5.4
9Logical AND Operator
- Combines two relational expressions
- Combined expression true only if BOTH expressions
are true
true
false
false
expression1 expression2
false
false true
false
false false
true true
true
Lesson 5.4
10Logical OR Operator
- Combines two relational expressions
- Combined expression false only if BOTH
expressions are false
true
false
true
expression1 expression2
true
false true
false false
false
true true
true
Lesson 5.4
11Example
Assume a 4, b -2, and c 0 x (a gt b
b gt c a b)
x ((a gt b) (b gt c) (a b))
Group
x ((4 gt -2) (-2 gt 0) (4 -2))
x (TRUE (FALSE FALSE))
Group
x (TRUE FALSE)
x (TRUE)
x 1
Lesson 5.5
12if Statement
- An if statement allows a program to choose
whether or not to execute a following statement. - Syntax (structure/format)
- if (condition)
- statement
- Semantics (meaning)
- condition is a Boolean expression Something
that evaluates to True or False. - If condition is true then execute the
statement.
13The if statement syntax
- if(expression)
- statement //single statement executed
- //if expression is true
if(expression) //statements inside are
//executed if expression is
true statement1 statement2 statement n
14If -else Statement
- An if-else statement allows a program to do one
thing if a condition is true and a different
thing if the condition is false. - Syntax
- if ( condition )
- statement1
- else
- statement2
- Statements to be executed for if and else can be
a single statement or multiple statements
enclosed in .
15The if - else statement syntax
- if(expression)
- statement
- else
- statement
if(expression) statement block
else statement block
16Simple If/Else Statement
if (expression) statement1a
statement1b else
statement1a statement1b
- Provides block of statements to be executed for
either true OR false - Braces optional if only one statement in block
Lesson 5.2
17if Examples
- x 3
- if (x lt 2)
-
- cout ltlt x is smaller than 2
-
Simple if statements only done on true,
but when false, skips to end of if
Full if code for when true and also when false
- if (x lt 12)
- cout ltlt smaller than twelve
- else
- cout ltlt twelve or larger
18if-else-if Form
if (relational_expression_1)
statement_block_1 else if
(relational_expression_2)
statement_block_2 . .
. else if (relational_expression_n-1)
statement_block_n-1 else
statement_block_n
false
else
false
else
true
Lesson 5.6
19The switch statement
switch(expression) case
constant statement(s) break case
constant statement(s) break / default
is optional/ default statement(s)
20The switch statement
- Expression must be of type integer or character
- The keyword case must be followed by a constant
- break statement is required unless you want all
subsequent statements to be executed.
21Practice!
Convert these nested if/else statements to a
switch statement if (rank1 rank2) cout
ltlt "Lower division \n" else if (rank3
rank4) cout ltlt "Upper division \n"
else if (rank5) cout
ltlt "Graduate student \n" else
cout ltlt "Invalid rank \n"
22Practice Solution!
switch(rank) case 1 case 2 cout ltlt
"Lower division \n" break case 3 case
4 cout ltlt "Upper division \n" break
case 5 cout ltlt "Graduate student \n"
break default cout ltlt "Invalid rank
\n" //end switch
23Summary
- In many applications, choices are to be made
depending on some conditions related to the
problem. Selection or decision structures are
used to model such situations. - C supports the implementation of selection
through the if and switch statements. In this
discussion we looked at various forms of
selection statements.