Documentation version 1.0 , 2009-06-08
Logical commands: $And{}, $Or{}, $Not{}, $>{}, $>={}, $<{}, $<={}, $=={}, $!={}
All of the ‘logical’ commands are used to compare/evaluate the given parameters and return a Boolean value of false or true.
This returned Boolean value is not shown in the text output directly.
They are used in combinations with commands depending on Boolean values such as $If{}, $Break{} and $Exclude{}.
(see tutorial 3)
The following examples show the effect of the commands, creating case-dependent output using the $If{} command.
Example 1:
SCRIPT |
PREVIEW-RESULT |
Output of $==: $=={5,2} Output of $If($==): $If{$=={5,2},<true!>,<false!>} |
Output of $==: Output of $If($==): false! |
Both lines of the script use the $=={} command to compare the two numbers 5 and 2. As
these numbers are not equal, the
command itself returns the value false. The first line, however, does
not produce any output, as Boolean values are not shown
in the text.
The second line uses the command within the condition parameter
of the $If{} command.
As the value is false the second of the
two output-options of the $If{} command is printed.
Example 2:
SCRIPT |
PREVIEW-RESULT |
$NewVar{num1,integer,1,5} Num1 = $Var{num1} $NewVar{num2,integer,1,3} Num2 = $Var{num2} Output of $==: $=={num1,num2} Output of $If($==): $If{$=={num1,num2},<true!>,<false!>} |
Num1 = 5 Num2 = 3 Output of $==: Output of $If($==): false! |
This example is very similar to the first, but instead of comparing two numbers directly, it compares the values of two variables.
This will be the most common situation. The first line
defines a new number (integer) variable of name num1 with the given
value of 5. (The “1” defines the variable as “array” of only 1 entry, which is
a simple, single number...)
The second line displays the value of the variable. Line 2 and 3 repeat this for another variable with name num2.
The remaining two lines are identical to the first example, just using the variables rather than the numbers directly.
Example 3:
SCRIPT |
PREVIEW-RESULT |
$NewVar{num1,integer,1,5} $NewVar{num2,integer,1,3} $Var{num1} == $Var{num2} is $If{$=={num1,num2},<true!>,<false!>} $Var{num1} != $Var{num2} is $If{$!={num1,num2},<true!>,<false!>} $Var{num1} >= $Var{num2} is $If{$>={num1,num2},<true!>,<false!>} $Var{num1} <= $Var{num2} is $If{$<={num1,num2},<true!>,<false!>} $Var{num1} > $Var{num2} is $If{$>{num1,num2},<true!>,<false!>} $Var{num1} < $Var{num2} is $If{$<{num1,num2},<true!>,<false!>} |
5 == 3 is false! 5 != 3 is true! 5 >= 3 is true! 5 <= 3 is false! 5 > 3 is true! 5 < 3 is false! |
This example simply list the various number comparison commands. Nothing special here.
Example 4:
SCRIPT |
PREVIEW-RESULT |
$If{$=={<test1>,<test1>},<same string>,<different string>} $If{$=={<test1>,<test2>},<same string>,<different string>} $If{$=={<test1>,<TEST1>},<same string>,<different string>}
$If{$!={<test1>,<test1>},<different string>,<same string>} $If{$!={<test1>,<test2>},<different string>,<same string>} $If{$!={<test1>,<TEST1>},<different string>,<same string>} |
same string different string different string
same string different string different string |
This example shows that the commands $=={} and
$!={} can
be used to compare strings as well.
Note that they compare exact and thus also case-sensitive!
Example 5:
SCRIPT |
PREVIEW-RESULT |
P = $If{ $=={1,1} , <true>, <false> } Q = $If{ $=={0,1} , <true>, <false> } NOT P = $If{ $Not{$=={1,1}} , <true>, <false> } NOT Q = $If{ $Not{$=={0,1}} , <true>, <false> } P AND Q = $If{ $And{$=={1,1},$=={0,1}} , <true>, <false> } P OR Q = $If{ $Or{$=={1,1},$=={0,1}} , <true>, <false> } |
P = true Q = false NOT P = false NOT Q = true P AND Q = false P OR Q = true |
The commands $And{}, $Or{}, $Not{} combine Boolean values logical. In this example we create two Boolean values (P & Q)
with the command $=={}.
The other lines show how these values combine logically.
Programmers should note that a Boolean variable is not simply an integer number of 0 or 1.
One can not assign a Boolean to an integer variable. However, one can use the $If{} command to assign case dependent values
as shown in the next example.
Example 6:
SCRIPT |
PREVIEW-RESULT |
$NewVar{num,integer,1,5} $SetVar{num,$If{$=={1,0},<10>,<2>}} $Var{num}
$NewVar{str,string,1,<empty>} $SetVar{str,$If{$=={1,0},<first choice>,<second choice>}} $Var{str} |
2
second choice |
Using the $If{} command in a $SetVar{} we can assign a value to the variable depending on the Boolean expression.
Note, that we could also use this to assign string variables, as shown in the second part of the example.