# Subgoals

## Section3.7Worked Example: Sequential If-Else Statements

### Subgoals for Evaluating Selection Statements.

1. Diagram which statements go together.
2. For if-statement, determine whether expression is true or false.
3. 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;

Evaluate these statements and determine the value of all variables used.
if (alpha > beta)
{
eta = alpha + 2;
gamma = alpha + 5;
}
else
{
eta = alpha  - 1;
gamma = beta - 1;
}
if (alpha > delta)
gamma = alpha + 5;
else
gamma = beta + 5;
eta = beta + 2;


### Subsection3.7.1SG1: Diagram which statements go together.

Take note of the three parts of the sequence.
The first if-else (with the curly braces) is highlighted in blue in the figure below.
The second if-else (with no curly braces) is highlighted in yellow.
The final single statement is highlighted in green, and it is not part of the sequential if-else statements, so it will always be executed.

### Subsection3.7.2SG2: 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 (alpha > beta):
(2 > 1) is TRUE

### Subsection3.7.3SG3: If true, follow true branch. If false, follow else branch (OR do nothing if there is no else branch).

eta = alpha + 2 = 2 + 2 = 4
gamma = alpha + 5 = 2 + 5 = 7

### Subsection3.7.4SG2: For if statement, determine whether true or false

Because there are 2 sequential if-statements, we need to repeat SG2 and SG3 for the second if-statement in the sequence.
First we evaluate (alpha > delta):
(2 > 3) is FALSE

### Subsection3.7.5SG3: 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.
gamma = beta + 5 = 1 + 5 = 6
Next sequential statement is always executed:
eta = beta + 2 = 1 + 2 = 3
Hint.
Answer: alpha = 2, beta = 1, delta = 3, eta = 3, gamma = 6