Professional Documents
Culture Documents
File PDF
File PDF
Making Decision:
If/Else/Else If… Statement
Making Selection:
Switch/Case… Statement
Nested If
Slide 4- 4
Relational Expressions
• Boolean expressions – true or false
• Examples:
12 > 5 is true
7 <= 5 is false
if x is 10, then
x == 10 is true,
x != 8 is true, and
x == 8 is false
Slide 4- 5
Relational Expressions (cont..)
• Can be assigned to a variable:
result = x <= y;
• Assigns 0 for false, 1 for true
• Do not confuse = and ==
Slide 4- 6
The if Statement
Slide 4- 8
Flowchart for Evaluating a Decision
Slide 4- 9
Flowchart for Evaluating a Decision
Slide 4- 10
The if Statement
• General Format:
if (expression)
statement;
Slide 4- 11
if statement – what happens
To evaluate:
if (expression)
statement;
• If the expression is true, then
statement is executed.
• If the expression is false, then
statement is skipped.
Slide 4- 12
(Program Continues)
Slide 4- 13
Slide 4- 14
Flowchart for Lines 21 and 22
Slide 4- 15
if statement notes
• Do not place ; after (expression)
• Place statement; on a separate line
after (expression), indented:
if (score > 90)
grade = 'A';
• Be careful testing floats and doubles
for equality
• 0 is false; any other value is true
Slide 4- 16
Flags
Slide 4- 18
Expanding the if
Statement
Slide 4- 20
The if…else
Statement
Slide 4- 22
The if/else Statement (cont..)
• General Format:
if (expression)
statement1; // or block
else
statement2; // or block
Slide 4- 23
if/else – what happens
To evaluate:
if (expression)
statement1;
else
statement2;
• If the expression is true, then statement1 is executed
and statement2 is skipped.
• If the expression is false, then statement1 is skipped
and statement2 is executed.
Slide 4- 24
Slide 4- 25
Flowchart for Lines 14 through 18
Slide 4- 26
(Program Continues)
Slide 4- 27
Slide 4- 28
The if…else if
Statement
Slide 4- 30
if/else if format
if (expression)
statement1; // or block
else if (expression)
statement2; // or block
.
. // other else ifs
.
else if (expression)
statementn; // or block
Slide 4- 31
(Program Continues)
Slide 4- 32
Slide 4- 33
Using a Trailing
else
Slide 4- 35
From Program 4-12
Slide 4- 36
Nested if Statements
Slide 4- 38
Notes on coding nested ifs
• An else matches the nearest if that does
not have an else:
if (score < 100)
if (score > 90)
grade = 'A';
else ...// goes with second if,
// not first one
• Proper indentation helps greatly
Slide 4- 39
Logical Operators
Slide 4- 41
Logical Operators - examples
(x <= z) || (y == z) false
(x <= z) || (y != z) true
Slide 4- 42
The && Operator in Program 4-16
Slide 4- 43
The || Operator in Program 4-17
Slide 4- 44
The ! Operator in Program 4-18
Slide 4- 45
Logical Operators - notes
• ! has highest precedence, followed by &&,
then ||
• If the value of an expression can be
determined by evaluating just the sub-
expression on left side of a logical operator,
then the sub-expression on the right side will
not be evaluated (short circuit evaluation)
Slide 4- 46
Checking Numeric Ranges
with Logical Operators
Slide 4- 48
Validating User Input
Slide 4- 50
From Program 4-19
Slide 4- 51
The switch Statement
Slide 4- 53
switch statement format
switch (expression) //integer
{
case exp1: statement1;
case exp2: statement2;
...
case expn: statementn;
default: statementn+1;
}
Slide 4- 54
Slide 4- 55
switch statement requirements
Slide 4- 56
switch statement – how it works
1) expression is evaluated
2) The value of expression is compared against exp1
through expn.
3) If expression matches value expi, the program
branches to the statement following expi and continues to
the end of the switch
4) If no matching value is found, the program branches to the
statement after default:
Slide 4- 57
break statement
Slide 4- 58
Slide 4- 59
Slide 4- 60
Using switch with a menu
• switch statement is a natural choice for
menu-driven program:
– display the menu
– then, get the user's menu selection
– use user input as expression in switch
statement
– use menu choices as expr in case statements
Slide 4- 61
From Program 4-32
Slide 4- 62
Testing for File Open
Errors
Slide 4- 64
Summaries Decision and
Selection – Example
using C language
Copyright © 2007 Pearson Education,
Inc. Publishing as Pearson Addison-
Wesley
Decision Structure - IF
Pattern 1
condition
This must be a True if (condition)
{
True statement;
}
statement False
Example 1: Printing a number only if it is a negative
n<0
if (n<0)
{
True
cout << “n is” << n ;
}
print False
n
Decision Structure – IF / ELSE
Pattern 2
if (condition)
{
statement_1;
condition True statment_1
}
else
{
False
statement_2;
}
statment_2
Example 2: If two numbers (p and q) are equivalent reset them to
zero, otherwise exchange or swap their value each other and
then print the new values.
if (p==q)
{
p == q True
p = 0;
p=0 q = 0;
False }
q=0
exchange( p,q) else
{
exchange(&p,&q);
cout << “p & q” << p << q;
print
p, q
}
Decision Structure – If/Else If/Else
Pattern 3 if (condition_1)
{
statement_1;
}
condition_1 True statment_1
else if (condition_2)
{
False
statement_2;
}
condition_2 True statment_2
else if (condition_n)
{
condition_n True statment_n statement_n;
}
False else
{
statment_m
statement_m;
}
Example 3: Identifying the grade of a score
if (score > 90)
{
score>90 True grade = 'A' grade = 'A';
}
False else if (score > 75)
{
score>75 True grade = 'B'
grade = 'B';
}
False
else if (score > 60)
score>60 True grade = 'C' {
grade = 'C';
False }
else if (score > 50)
score>50 True grade = 'D' {
grade = 'D';
False
}
grade = 'F' else
{
grade = 'F';
}
Selection Structure – Switch/Case
Pattern 5
• The conditions must be in this form: expression == value
switch (expr)
{
expr==val_1 True statment_1 case val_1 : statement_1;
break;
False
default: statement_m;
statment_m
break;
}
Example 4: Printing the description of a grade.
switch (grade)
{
grade=='A' True Print
"Excellent"
case 'A‘ :
printf("Excellent!“);
False break;
Print
grade=='B' True
"Very Good case 'B' : printf("Very
good!“);
False
break;
Print
grade=='C' True "Good"
case 'C' : printf("Good“);
False
break;
grade=='D' True
Print
"Adequate"
case 'D' :
printf("Adequate“);
False break;
Print
"Fail" default : printf("Fail“);
break;
}