If statements do one thing if the condition is satisified, or do another thing if it is not. They are the most basic form of conditional checking and flow control.
if($a < 10) //Do something elseif ($b > $a && $b < 15) //Do something else if something else //Do something else end if //Alternatively, as of version 1.3.4.90, if statements can be a single line, terminated with a semi-colon if ($m == 10) print("It does indeed");
Version 1.6.6 added an additional syntax for the if statement that uses the
then
keyword, officially known as if...then
statements:
if $a < 10 then //Do something if $a < 10 then print("It does indeed")
The then
statement is different from a standard
if statement in that it can only have a single action inside the statement and does not end
with either a brace or end if
:
if $a < 10 then print("Hello 1") print("Hello 2")
The "Hello 2" string is not in the if statement however, the "Hello 1" is.
Prior to version 1.7.11, the then
keyword was simply
syntactic sugar and did not differ from the ordinary if statement.
Else statements can also be added to if...then
statements:
if $a < 10 then print("Hello 1") else print("Hello 2")
It should noted that these else
statements in
if...then
statements must be a single
expression like the if...then
statement.
Below is an example of a single bit adder program created using binary logic in ZPE:
function adder($x, $y) $xor = xor($x, $y) $land = $x and $y $carry = 0 $val = 0 if($xor) $val = 1 else if($land) $val = 1 $carry = 1 end if end if return ["result" => $val, "carry" => $carry] end function function main() print(adder(1, 0)) print(adder(0, 0)) print(adder(1, 1)) end function
For a more advanced version of this code, look at the documentation for the
xor
function.
else if
Version 1.6.7 also added the new else if
to
compliment the original elseif
- either was valid until
version 1.9.4:
if ($a < 10) //Do something elseif ($b > $a && $b < 15) //Do something else if something else if ($c > $a && $c < 15) //Do something else if something else //Do something else end if
else if
syntax was removed in ZPE 1.9.4. It was later discovered to cause
serious issues when nested if statements are used.