411 REFERENCE · Wikibooks
Rexx Programming/How to Rexx/boolean
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Boolean values are logical truth values that are considered either true or false. Rexx uses 1 to mean "true" and 0 to mean "false". Some programming languages have many different kinds of values that could be treated as Boolean, depending on the context. The Rexx programming language itself only recognizes 0 and 1 for this purpose.
/* Some Boolean variables */
raining = 1
freezing = 1
snowing = 0
hailing = 0
/* Boolean values affect control structures... */
/* The computer will say we might need an umbrella. */
select
when raining then say "You might need an umbrella."
when snowing then say "Let's build a snowman!"
when hailing then say "Ouch! There's hail."
otherwise say "There might not be any precipitation."
end
/* The computer will tell us to watch out for ice. */
if freezing then say "Watch out for ice!"
else say "At least it's not freezing outside."
/* This loop will never start because it isn't snowing. */
do while snowing
say "It'll just keep snowing forever!"
end
Logical Operators
Operators exist to combine Boolean values into new Boolean values. The ampersand (&) means "and", the pipe symbol (|) means "or" and the backslash (\) means "not".
if raining | snowing then
say "It's either raining or snowing--maybe both."
if raining & freezing then
say "Expect freezing rain."
if \ snowing then
say "No snow today."
if \ (raining | snowing) then
say "It's neither raining nor snowing."
Relational Operators
Some other operations combine other kinds of values to make true or false statements. They will always result in 0 or 1. You can read about them in the comparative operators section. The remainder when an integer is divided by 2 will technically result in a Boolean value, but other kinds of remainders will not.
say 2 < 3 /* says 1 */
say "happy" = "sad" /* says 0 */
/* We can use Booleans to validate input: */
do until positive & even
say "Enter a positive even number:"
pull number
positive = number > 0
odd = number // 2
even = \ odd
end