AP CSA 2.1 Debugging: The Swap That Loses a Value

Unit 2: Selection and Iteration · Lesson 2.1 · Debugging

The Swap That Loses a Value

Algorithms with Selection and Repetition. This is not a blank editor: it is someone else's attempt. Find what is wrong, fix it, and submit to be graded against hidden test cases.

Why debugging is its own skill

Two bugs, and neither one crashes. The program runs, prints something that looks plausible, and is wrong twice. That is the normal case in real code, and it is why reading output carefully matters more than watching for red text.

What is wrong with it

  1. Run the program. The two values print swapped incorrectly: both lines show the same number. The swap overwrites one value before it has been saved anywhere. Fix it so both original values survive.
  2. The countdown stops one number early. It should count all the way down to 1 before LIFTOFF, and right now the last number never prints. Fix the loop condition.
  3. The LIFTOFF line and the way the values are read are both correct. Leave them alone.

The program reads

Two integers on the first line, then a single positive integer for the countdown.

The program should print

The two values in swapped order on two lines, then the countdown from that integer down to 1, one per line, then LIFTOFF.

Worked examples

These show what the FIXED program should print. There are more cases you cannot see, and they use different values, so patching around just these numbers will fail.

Example 1 input
3 8 5
Example 1 output
8
3
5
4
3
2
1
LIFTOFF
Example 2 input
10 20 1
Example 2 output
20
10
1
LIFTOFF

Your answer

Main.java

Input for the Run button

Run sends whatever is in the code box below, bugs and all, so you can see the crash or the wrong answer for yourself before you fix anything.


  

  

Stuck?

Hint 1

Write out what a and b hold after each of the two assignment lines runs. After the first line, the old value of a is gone: nothing else in the program is holding it. You need a third variable to park it in before you overwrite it.

Hint 2

A countdown to 1 has to actually test 1. The condition i > 1 is already false when i reaches 1, so the body never runs for it.

Hint 3

Only two lines change and one line is added. If you rewrote the loop as a while loop you did more work than the fix needed.

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]