AP CSA 2.2 Debugging: Distributing the Not

Unit 2: Selection and Iteration · Lesson 2.2 · Debugging

Distributing the Not

Boolean Expressions. 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

Negating a compound condition is where confident students lose points. The rule is not the one arithmetic taught you: a not in front of a parenthesis does not simply move inside and stay the same shape.

What is wrong with it

  1. The second line is supposed to print whether it is NOT true that a is greater than b AND b is greater than c. The code distributes the not across the and incorrectly, so it prints the wrong answer whenever exactly one of the two comparisons is true. Fix the expression.
  2. The third line is supposed to print whether a and c are equal while b is different from both. The code uses an or where the logic requires an and. Fix it.
  3. The first line is already correct. Do not change it.

The program reads

Three integers on one line.

The program should print

Three lines of true or false: whether all three are equal, whether it is not the case that a > b and b > c, and whether a equals c while b differs from both.

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
5 3 1
Example 1 output
false
false
false
Example 2 input
2 2 2
Example 2 output
true
true
false

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

Build the truth table for a > b and b > c with two columns. The expression !(P && Q) is true in three of the four rows. The expression !P && !Q is true in only one of them. They agree only at the extremes, which is why small test inputs can hide this.

Hint 2

When a not really does move inside a parenthesis, every and becomes an or and every or becomes an and. That is De Morgan. Here the simpler fix is to leave the not outside the whole thing.

Hint 3

For the third line, read the sentence again: a equals c AND b is different. Two conditions that must both hold is never an or.

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]