  ## Boolean Expressions

### The boolean Type

Variables of boolean type have only two values: "true" and "false"

Arithmetic comparisons result in boolean values. For example:

boolean b1 = (5 > 3);                 // b1 = true;
boolean b2 = (2 <= 1);                // b2 = false;

boolean radiusIsPositive = (r > 0);   // could be true
// or false - it
// depends on what
// r is.


### Comparison Operators

Comparison operators compare a pair of values (possibly numbers, characters, or boolean values) and return a boolean value.

 Comparison Operator Name < less than <= less than or equal to > greater than >= greater than or equal to == equal to != not equal to

### Boolean Operators

Some operators perform "logic operations", operating on one or more Boolean values and resulting in a Boolean value. These are called Boolean operators.

 Boolean Operator Name ! not && and || or ^ exclusive or

#### Truth Table for the "not" operator (!)

 p !p T F F T

Examples

boolean b1 = !(1 > 2);  \\ b1 = true, as (1 > 2) is false
boolean b2 = !(1 > 0);  \\ b2 = false, as (1 > 0) is true


#### Truth Table for the "and" operator (&&)

 p q p && q T T T T F F F T F F F F

Examples

boolean b1 = (3 > 2) && (5 >= 5);  \\ b1 = true, as
\\ both inequalities
\\ are true

boolean b2 = (3 > 2) && (5 > 5);   \\ b2 = false, as
\\ (5 > 5) is false


#### Truth Table for the "or" operator (||)

 p q p || q T T T T F T F T T F F F

Examples

boolean b1 = (2 > 3) || (5 > 5);  \\ b1 = false, as
\\ both inequalities
\\ are false

boolean b2 = (3 > 2) || (5 > 5);  \\ b2 = true, as at
\\ least one of the
\\ inequalities is true


#### Truth Table for the "exclusive or" operator (^)

 p q p ^ q T T F T F T F T T F F F

Examples

boolean b1 = (2 > 3) ^ (5 > 5);   \\ b1 = false, as
\\ both inequalities
\\ are false

boolean b2 = (3 > 2) ^ (5 > 5);   \\ b2 = true, as
\\ exactly one of the
\\ inequalities is true

boolean b3 = (3 > 2) ^ (5 > 4);   \\ b3 = false, as
\\ both inequalities
\\ are true


A Boolean expression is an expression that evaluates to a Boolean value. The mathematics of these logical operators and expressions is called Boolean Algebra, and was developed by George Boole in 1854.

### Shortcut Evaluation of Boolean Expressions

Java uses "shortcut evaluation" when it attempts to evaluate a Boolean expression. In other words, the evaluation of the expression stops as soon as the result is known.

For example:

boolean b = (3 < 2) && ( 1/0 < 5 ); \\ b = false
\\ the expression on the right
\\ is never evaluated

boolean b = (3 > 2) && ( 1/0 < 5 ); \\ RUN-TIME ERROR
\\ due to the division
\\ by zero