0% found this document useful (0 votes)
28 views22 pages

Boolean Data Type: 15-110 Summer 2010 Margaret Reid-Miller

Boolean values represent one of two states: true or false. Boolean variables are used to indicate whether a condition is true or false. Relational operators compare values and return a Boolean result, determining ordering between values. Logical operators combine Boolean values and return true if the conditions of the operators are met, such as && returning true if both operands are true. De Morgan's laws provide equivalences for negating logical operations.

Uploaded by

sdfs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views22 pages

Boolean Data Type: 15-110 Summer 2010 Margaret Reid-Miller

Boolean values represent one of two states: true or false. Boolean variables are used to indicate whether a condition is true or false. Relational operators compare values and return a Boolean result, determining ordering between values. Logical operators combine Boolean values and return true if the conditions of the operators are met, such as && returning true if both operands are true. De Morgan's laws provide equivalences for negating logical operations.

Uploaded by

sdfs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Boolean Data Type

15-110 Summer 2010


Margaret Reid-Miller
Boolean values
•  Named after George Boole (1815-1864), who invented
mathematical logic and defined Boolean algebra.
•  A variable of the primitive data type boolean can have two
values: true and false (Boolean literals).
•  Boolean variables are used to indicate whether a condition is
true or not, or to represent two states, such as a light being on
or off.
e.g.,
all lower case
boolean hasLicense;
!boolean isDone = false;!
!boolean isTurnedOn = true;!

15-110 Summer 2010 15-100 (Reid-Miller) 2


Expressions
•  Up to now we have seen
•  arithmetic expressions that use the operators
+ - * / % ++ --
•  assignment expressions that use the operators
= += -= …
•  Boolean expressions use relational and logical
operators.
•  The result of a Boolean expression is either true or
false.
•  Boolean expressions allow us to write programs that
decide whether to execute some code or not.
•  These decisions changes the flow of the program
execution.
15-110 Summer 2010 15-100 (Reid-Miller) 3
Relational operators
•  Relational operators compare two arithmetic expressions
and evaluate to a boolean result.

Operator Name
==! equal to

!=! not equal to

<! less than

<=! less than or equal to

>! greater than

>=! greater than or equal to

Careful: Do not confuse the assignment operator =


with the equality operator ==.
15-110 Summer 2010 15-100 (Reid-Miller) 4
Relational operators
•  The relational operators determine the relative
ordering between values.
•  The relational operators may be use to compare
expressions that evaluate to numeric and char data.
•  These relational operators have lower precedence
than the arithmetic operators.
•  Thus, arithmetic expressions are evaluated first,
then the resulting Boolean expressions.
•  That is, Java does the “math” first, then the
comparison.

15-110 Summer 2010 15-100 (Reid-Miller) 5


Relational operators
Examples:
int x = 15;!
!int y = 100;!
!System.out.println(x > y);!
!System.out.println(x < 15);!
!System.out.println(x <= 15)!
!System.out.println(x == y);!
!System.out.println(x != 5);!
!System.out.println(x * -y > 0);!
!boolean isBigger = x > y;!

15-110 Summer 2010 15-100 (Reid-Miller) 6


Logical operators
•  Logical operators combine boolean values and
evaluate to a boolean result.

Operator Name Example Result

!! Logical !a! true if a is false,


NOT false if a is true
&&! Logical a && b! true if both a and b are
AND true, false otherwise
||! Logical OR a || b! true if a or b, or both are
true, false otherwise

15-110 Summer 2010 15-100 (Reid-Miller) 7


Truth Tables
•  Truth tables list all possible combination of values
for the variables in an expression.

a! b! a && b! a || b! !a!
true! true! true! true! false!
true! false! false! true! false!
false! true! false! true! true!
false! false! false! false! true!

15-110 Summer 2010 15-100 (Reid-Miller) 8


Logical operators
Example:!

age > 26! hasLicense! (age > 26) && hasLicense!

!15-110 Summer 2010!

!boolean canRentCar = (age > 26) && hasLicense;!

15-110 Summer 2010 15-100 (Reid-Miller) 9


Logical operators
Example:!

age > 26! hasLicense! (age > 26) && hasLicense!


true! true! true!
true! false! false!
false! true! false!
false! false! false!

!int age = 16;!


!boolean hasLicense = true;!
!boolean canRentCar = (age > 26) && hasLicense;!

15-110 Summer 2010 15-100 (Reid-Miller) 10


Logical operators
Examples: && is evaluated after relational operators.
int x = 15; ! || is evaluated after &&.!
!!
!int y = 100;!
!System.out.println(x > y && x >= 15);!
!System.out.println(x < 15 || x > 15);!
!System.out.println(x == y && y == 100)!
!System.out.println(x != 5 && x < y);!
!System.out.println(x + y > 100 || y <= 10);!

15-110 Summer 2010 15-100 (Reid-Miller) 11


Logical operators: Exercise 1
•  It is time to buy a new phone when at least one of the
following situations occurs:
•  the phone breaks
•  the phone is at least 3 years old

int phoneAge; // in years!


Boolean isBroken;!
… // code initializes variables!

boolean needPhone = ___________________________;!

15-110 Summer 2010 15-100 (Reid-Miller) 12


Logical operators: Exercise 1
•  It is time to buy a new phone when at least one of the
following situations occurs:
•  the phone breaks
•  the phone is at least 3 years old

int phoneAge; // in years!


Boolean isBroken;!
… // code initializes variables!

boolean needPhone = (isBroken == true) !


|| (phoneAge >= 3);!

15-110 Summer 2010 15-100 (Reid-Miller) 13


Logical Operators: Exercise 2
•  Assume x, y, and z are int variables that have been
initialized.

boolean areAllEqual = _________________________;

15-110 Summer 2010 15-100 (Reid-Miller) 14


Logical Operators: Exercise 2
•  Assume x, y, and z are int variables that have been
initialized.

boolean areAllEqual = (x == y) && (y == z);!

15-110 Summer 2010 15-100 (Reid-Miller) 15


Boolean Algebra
•  Double negative: !!a ≡ a!

•  de Morgan’s Law:
!!(a && b) ≡ !a || !b!

!!!(a || b) ≡ !a && !b

15-110 Summer 2010 15-100 (Reid-Miller) 16


de Morgan’s Law (version 1)
Truth table: Consider all possible combinations of
values of booleans a and b.
!(a && b) == (!a || !b)!

a! b! a && b! !(a && b)! !a! !b! !a || !b!

T T

T F

F T

F F

15-110 Summer 2010 15-100 (Reid-Miller) 17


de Morgan’s Law (version 1)
Truth table: Consider all possible combinations of
values of booleans a and b.
equal
!(a && b) == (!a || !b)!

a! b! a && b! !(a && b)! !a! !b! !a || !b!

T T T F F F F

T F F T F T T

F T F T T F T

F F F T T T T

15-110 Summer 2010 15-100 (Reid-Miller) 18


de Morgan’s Law (version 2)
Truth table: Consider all possible combinations of
values of booleans a and b.
!(a || b) == (!a && !b)!

a! b! a || b! !(a || b)! !a! !b! !a && !b!

T T

T F

F T

F F

15-110 Summer 2010 15-100 (Reid-Miller) 19


de Morgan’s Law (version 2)
Truth table: Consider all possible combinations of
values of booleans a and b.
equal
!(a || b) == (!a && !b)!

a! b! a || b! !(a || b)! !a! !b! !a && !b!

T T T F F F F

T F T F F T F

F T T F T F F

F F F T T T T

15-110 Summer 2010 15-100 (Reid-Miller) 20


de Morgan’s Law
In Java:
!!((age < 12) || (age >= 65))!

In English: It is not the case that age less than 12 or age greater
than or equal to 65. !!!?

Simplify using de Morgan’s Law:


!(age < 12) && !(age >= 65)!

The reverse the meaning of the relational expressions:


(age >= 12) && (age < 65)

That is, when age is at least 12 and less than 65.

15-110 Summer 2010 15-100 (Reid-Miller) 21


de Morgan’s Law
In English:
!Words neither rhyme nor alliterate.

In Java:
!wordsRhyme ___ &&! !wordsAlliterate!
Words don’t rhyme and they don’t alliterate

Apply de Morgan’s Law:


!(wordsRhyme || wordsAlliterate)!
!It’s not the case words rhyme or alliterate.

15-110 Summer 2010 15-100 (Reid-Miller) 22

You might also like