# Subgoals

## Section5.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 no else branch

### Subsection5.7.1

You can watch this video or read through the content below it.
Given the following declarations:
int alpha = 2;
int beta = 1;
int delta = 3;
int eta = 0;
int 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;


### Subsection5.7.2SG1: 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.

### Subsection5.7.3SG2: 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

### Subsection5.7.4SG3: 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

### Subsection5.7.5SG2: 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

### Subsection5.7.6SG3: 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
alpha = 2, beta = 1, delta = 3, eta = 3, gamma = 6