# Boolean Expressions

## 23. Precedence of NOT

No. In this defective fragment, the NOT (the !) applies directly to cost.

# Precedence of NOT

The NOT operator has high precedence, so it is done before arithmetic and relational operators unless you use parentheses. Examine the following:

!cost < 50
-----
illegal: can't use ! on an arithmetic variable

Since ! has high precedence, the above says to apply it to cost. This which won't work, because cost is an integer and NOT applies only to boolean values.

#### Question 24:

You need new shoes. But all you can afford is a pair of shoes that costs less than fifty dollars.

Look at these fragments of code. Does each do the same thing?

if ( cost < 50 ) System.out.println("Acceptable shoes"); else System.out.println("Reject these shoes");

if ( !(cost < 50) ) System.out.println("Reject these shoes"); else System.out.println("Acceptable shoes");

if ( cost >= 50 ) System.out.println("Reject these shoes"); else System.out.println("Acceptable shoes");

if ( !(cost >= 50) ) System.out.println("Acceptable shoes"); else System.out.println("Reject these shoes");

Mentally try a few costs with each fragment to see if they are equivalent.