This site will look much better in a browser that supports web standards, but it is accessible to any browser or Internet device.
=
aFrog = bFrog
==
aFrog == bFrog
The other comparison operators are:
~= "inequality"
< "less than"
> "greater than"
<= "less than or equal to"
>= "greater than or equal to"
More complex Boolean expressions can be constructed using three other Boolean
operators. They are
and
or
not
and is written in Smalltalk as &. It takes two Boolean operands and returns true if both operands return true. Otherwise it answers false.
(3 < 4) & (5 < 6)
"evaluates to"
(true) & (true)
"answers true"
(6 > 7) & (4 < 9)
"evaluates to"
(false) & (true)
"answers false"
"Similarly"
true & false "answers false"
false & false "answers false"
or written in Smalltalk as | (the vertical bar, or pipe
character)
It takes two Boolean operands and returns true if one or both
of those operands returns true. Otherwise it will return false.
(2 < 5) | (9 > 18)
"evaluates to"
true | false
"answers true"
(20 < 10) | (5 > 1)
"evaluates to"
false | false
"answers false"
true | true "answers true"
not written in Smalltalk as not
Unlike the two previous binary operators not is a unary operator. It takes a single Boolean operand and negates that operand.
(10 > 5) not
"evaluates to"
true not
"answers false"
If you try and evaluate not true you will find that Smalltalk will ask you to create not as a variable. Remember true is the receiver of the not message and will return false as its message answer.
Similarly false not returns true
Go here for some Boolean questions and answer.
There are two other useful Boolean message selectors, and:
, or:
Both of these selectors take blocks as their arguments. However, by using
and:, as opposed to &, if the receiver happens
to be false the argument to and: will not be evaluated.
This is a far more efficient means of testing Boolean variables than the
use of &, because in the latter case the block will be
evaluated even if the receiver is false. Go here
for an example of using and:
Similarly, try using or: instead of |.
Next page » Conclusion
Previous page « Branching