# Subgoals

## Section5.11Assessment: While and For Loops

### Subsection5.11.1Subgoals for Evaluating a Loop

1. Diagram which statements go together.
2. Define and initialize variables
1. Determine the start condition.
2. Determine the update condition.
3. Determine the termination condition.
4. Determine body that is repeated.
3. Trace the loop.
1. For every iteration of the loop, write down the values.

### Exercises5.11.2Exercises

#### 1.

Q1: What is printed as a result of executing the following code segment?
int k = 0;
while (k < 10) {
System.out.print((k % 3) + " ");
if ((k % 3) == 0)
k = k + 2;
else
k++;
}

• 0 2 1 0 2
• 0 2 0 2 0 2
• 0 2 1 0 2 1 0
• 0 2 0 2 0 2 0
• 0 1 2 1 2 1 2

#### 2.

Q2: What are the first and last numbers printed by the following code segment?
int number = 15;
while (number < 28) {
System.out.println(number);
number++;
}

• First: 15; Last: 27
• First: 15; Last: 28
• First: 16; Last: 27
• First: 16; Last: 28
• First: 16; Last: 29

#### 3.

Q3: What is printed as a result of executing the following code segment?
int alpha = 24;
int beta = 30;
while (beta != 0) {
int rho = alpha % beta;
alpha = beta;
beta = rho;
}
System.out.println(alpha);

• 0
• 6
• 12
• 24
• 30

#### 4.

Q4: Considering the following code, which best describes what the code does?
int var = 0;
int num = 50;
for (int x = 1; x <= 50; x += 2) {
var = var + x;
}
System.out.println(var);

• Prints the value in num
• Prints the sum of all the integers between 1 and num, inclusive
• Prints the sum of all even integers between 1 and num, inclusive
• Prints the sum of all odd integers between 1 and num, inclusive
• Nothing is printed, it is an infinite loop

#### 5.

Q5: What is printed as a result of executing the following code segment?
int typeA = 0;
int typeB = 0;
int typeC = 0;
for (int k = 1; k <= 50; k++) {
if (k % 2 == 0 && k % 5 == 0)
typeA++;
if (k % 2 == 0)
typeB++;
if (k % 5 == 0)
typeC++;
}
System.out.printf("%d %d %d", typeA, typeB, typeC);

• 5 20 5
• 5 20 10
• 5 25 5
• 5 25 10
• 30 25 10