AP CSA Unit-Level MCQ
Nested Loops
Practice mode with 15 Java-focused questions, immediate answer checks, and explanations.
What nested loops covers
In nested loops the inner loop completes all of its iterations for every single iteration of the outer loop. When both bounds are fixed, the total iteration count is the product of the two. When the inner bound depends on the outer variable, as in for (int j = 0; j < i; j++), the pattern becomes triangular and the total is a running sum rather than a product.
Where students lose points
The biggest error is resetting or failing to reset the inner variable, which throws off every traced value. Students also add the two loop counts instead of multiplying them, and they miscount triangular patterns by assuming the inner loop always runs the same number of times.
How it shows up on the AP exam
Unit 2 iteration that becomes essential in Unit 4 for 2D arrays. Output-pattern questions and iteration-count questions are both standard MCQ formats built directly on this topic.
For practice use only.
Nested Loops MCQ Practice
AP CSA nested loop practice: counting total iterations, tracing inner and outer variables, and triangular patterns where inner bounds depend on the outer index.
Answered 0 of 15
Choose one answer.
Code Tracing 01 - Nested Loops: track the final printed value.
int count = 0;
for (int i = 1; i <= 5; i++) {
for (int j = i; j <= 5; j++) {
count++;
}
}
System.out.print(count);All 15 nested loops questions
Work through the interactive quiz above first. This is the full nested loops question set with worked solutions, so students can review any question after attempting it.
1.Code Tracing 01 - Nested Loops: track the final printed value.
int count = 0; for (int i = 1; i <= 5; i++) { for (int j = i; j <= 5; j++) { count++; } } System.out.print(count);- 25
- 10
- 20
- 15
Show worked solution
Correct answer: 15
The inner loop starts at i rather than 1, so each pass is shorter than the last and only the upper triangle is visited.
2.Code Tracing 12 - Nested Loops: follow the variable updates.
int total = 26; for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { if (j > i) break; total += j; } } System.out.print(total);- 61
- 65
- 40
- 60
Show worked solution
Correct answer: 61
The break stops only the inner loop, so each outer pass adds 1 through i and then moves on.
3.Code Tracing 28 - Nested Loops: trace the branch and loop path.
int total = 38; for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 5; j++) { if (j % 2 == 0) continue; total += i * j; } } System.out.print(total);- 128
- 134
- 60
- 125
Show worked solution
Correct answer: 128
continue skips only the rest of the current inner pass, so even j values contribute nothing but the loop keeps running.
4.Code Tracing 39 - Nested Loops: watch the index changes.
String out = "ARRA"; for (int i = 1; i <= 3; i++) { for (int j = 0; j < i; j++) { out += i; } out += "-"; } System.out.print(out);- ARRA1-22-333--
- ARRA1-22-333-
- ARRA122333
- 1-2-3-
Show worked solution
Correct answer: ARRA1-22-333-
The dash is appended by the outer loop, so it appears once per outer pass rather than once per character.
5.Code Tracing 50 - Nested Loops: evaluate the state change step by step.
int found = -1; outer: for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { if (i * j == 10) { found = i * 19 + j; break outer; } } } System.out.print(found);- 44
- 10
- 43
- -1
Show worked solution
Correct answer: 43
A labeled break exits both loops at once, so the first matching pair found is the one reported.
6.What is printed by the following code segment?
int c = 0; for (int i = 1; i <= 4; i++) { for (int j = 1; j <= i; j++) { for (int k = 1; k <= j; k++) { c++; } } } System.out.print(c);- 10
- 20
- 24
- 16
Show worked solution
Correct answer: 20
The innermost count grows as 1, 3, 6, and 10 across the outer passes.
7.What is printed by the following code segment?
String out = ""; for (int i = 1; i <= 3; i++) { for (int j = 3; j >= i; j--) { out += j; } out += "|"; } System.out.print(out);- 123|23|3|
- 321|321|321|
- 321|32|3|
- 3|32|321|
Show worked solution
Correct answer: 321|32|3|
Each row counts down from 3 to the current outer value, so the rows shrink.
8.What is printed by the following code segment?
int t = 0; for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == j) { continue; } if (i > j) { break; } t += i * j; } } System.out.print(t);- 11
- 6
- 9
- 5
Show worked solution
Correct answer: 5
When i is 1 the row adds 2 and 3. Every later row breaks on its first pass because the inner index starts behind, so nothing more accumulates.
9.What is printed by the following code segment?
int c = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if ((i + j) % 2 == 0) { c++; } } } System.out.print(c);- 13
- 12
- 25
- 10
Show worked solution
Correct answer: 13
In a five by five grid the cells whose coordinates share a parity form the larger of the two checkerboard colors.
10.What is printed by the following code segment?
int s = 0; for (int i = 1; i <= 3; i++) { int inner = 0; for (int j = 1; j <= 3; j++) { inner += j; } s += inner * i; } System.out.print(s);- 18
- 36
- 54
- 24
Show worked solution
Correct answer: 36
The inner total is 6 every pass, and multiplying by 1, 2, and 3 gives 6, 12, and 18.
11.What is printed by the following code segment?
String out = ""; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { out += i == j ? "X" : "."; } } System.out.print(out);- X..X..X..
- .X..X..X.
- X...X...X
- XXX......
Show worked solution
Correct answer: X...X...X
Nine characters are printed and only the three diagonal positions are marked.
12.What is printed by the following code segment?
int c = 0; for (int i = 2; i <= 10; i++) { boolean p = true; for (int d = 2; d < i; d++) { if (i % d == 0) { p = false; } } if (p) { c++; } } System.out.print(c);- 5
- 3
- 9
- 4
Show worked solution
Correct answer: 4
The primes from 2 through 10 are 2, 3, 5, and 7.
13.What is printed by the following code segment?
int t = 0; for (int i = 1; i <= 3; i++) { for (int j = i; j <= 3; j++) { for (int k = j; k <= 3; k++) { t++; } } } System.out.print(t);- 10
- 27
- 6
- 14
Show worked solution
Correct answer: 10
This counts the non-decreasing triples drawn from three values.
14.What is printed by the following code segment?
String out = ""; for (int r = 1; r <= 3; r++) { for (int c = 1; c <= 3; c++) { if (c % r == 0) { out += c; } } } System.out.print(out);- 123
- 12323
- 1232
- 1233
Show worked solution
Correct answer: 12323
Row 1 keeps every column, row 2 keeps only column 2, and row 3 keeps only column 3.
15.What is printed by the following code segment?
int c = 0; outer: for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (i * j > 4) { break outer; } c++; } } System.out.print(c);- 16
- 9
- 11
- 12
Show worked solution
Correct answer: 11
A labeled break exits both loops at once, which happens when the product first exceeds 4.
