3.7. Worked Example: Nested If-Else StatementsΒΆ
Subgoals for Evaluating Selection Statements
Diagram which statements go together.
For if-statement, determine whether expression is true or false.
If true, follow true branch. If false, follow else branch (OR do nothing if there is no else branch).
You can watch this video or read through the content below it.
Given the following declarations:
int alpha = 2, beta = 1, delta = 3, eta = 0, gamma = 0;
double omega = 2.5, theta = -1.3, kappa = 3.0, lambda = 0.0, rho = 0.0;
Evaluate these statements and determine the value of all variables used.
if (omega > kappa)
{
if (alpha < delta)
eta = 5;
else
eta = 4;
}
else
if (alpha > delta)
eta = 3;
else
eta = 2;
SG1: Diagram which statements go together.
In this diagram, the first thing to note is the parent/outer if-else statement highlighted in blue.
The true branch of the parent/outer statment contains an inner if-else.
Likewise, the else branch of the parent/outer statement contains an inner if-else.

SG2: For if statement, determine whether true or false
Because there are 2 sequential if-statements, we start with the first one, and then repeat SG2 and SG3 for the other.
First we evaluate (omega > kappa):
(2.5 > 3.0)
is FALSE
SG3: If true, follow true branch. If false, follow else branch (OR do nothing if there is no else branch).
The else branch contains another if-else statement, so we must repeat the SG2 and SG3.

SG2: For if statement, determine whether true or false
Start with the first if-statement in the inner sequence.
First we evaluate (alpha > delta):
(2 > 3)
is FALSE
SG3: If true, follow true branch. If false, follow else branch (OR do nothing if there is no else branch).
The condition is FALSE so we follow the else branch.
eta = 2;
Answer: omega = 2.5, kappa = 3.0, alpha = 2, beta = 1, delta = 3, eta = 2
Practice Pages