Official ZPE/YASS documentationIf statements
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 184.108.40.206, 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 $a < 10 then //Do something if $a < 10 then print("It does indeed")
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
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 construct a action line if statement.
Else statements can also be added to
if $a < 10 then print("Hello 1") else print("Hello 2")
It should noted that these
else statements must be a single
expression like the
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
Version 1.6.7 also added the new
else if to
compliment the original
elseif - either was valid until
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 ifsyntax was removed in ZPE 1.9.4. It was later discovered to cause serious issues when nested if statements are used.