AP CSA 2.4 Debugging: Which if Does That else Belong To?

Unit 2: Selection and Iteration · Lesson 2.4 · Debugging

Which if Does That else Belong To?

Nested if Statements. 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

An else attaches to the nearest unmatched if, not to the one lined up with it in the indentation. Indentation is a comment as far as the compiler is concerned. This program is indented to look right and behaves the other way.

What is wrong with it

  1. Run the program with age 70 and member 0. It prints the wrong price. The else was written without braces on the outer if, so it binds to the INNER if instead of the outer one. Add the braces that make the else belong to the outer if.
  2. Seniors who are members should get the senior price, not the member price. Once the braces are fixed, check the order of the two tests inside the adult branch and make the senior test win.
  3. The reading of the two inputs is correct.

The program reads

An integer age, then 1 if the person is a member or 0 if not.

The program should print

One line: the ticket price. Under 13 pays 6. Age 65 and over pays 8 whether or not they are a member. Everyone else pays 10, or 9 if they are a member.

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
70 0
Example 1 output
8
Example 2 input
10 0
Example 2 output
6

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

Read the spec again for a child: under 13 pays 6, membership is not mentioned. The starter charges a non-member child 10. That whole inner if should not exist.

Hint 2

Age 65 and over pays 8 whether or not they are a member. The starter tests membership first, so a 70 year old member is charged 9 and never reaches the senior test. Order matters in a chain: the more specific rule goes first.

Hint 3

The cleanest fix collapses all of it into one four-branch chain on age, then membership. If you are still nesting an if inside an if, you are working harder than the spec requires.

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]