As in all programming languages, Logo allows you to check if a condition is satisfied and then to execute the desired
code if it’s true or false.
With the primitive if you can realize those tests.
if expression_test list1 list2 |
|
if expression_test is true, the instructions included in list1 are executed. Else, if expression_test is false, the
instructions in list2 are executed. This second list is optional.
Examples:
- if 1+2=3[print "true][print "false]
- if (first "XLOGO)="Y [fd 100 rt 90] [pr [ XLOGO starts with a X!] ]
- if (3*4)=6+6 [pr 12]
Important: When the result of the first predicate is equal to false, the primitive if looks for a second list, I mean an
expression starting with a square bracket. In some very rare cases, it can’t be done, and you’ll have to use the
primitive ifelse . For example:
# We affect two lists in variables a and b
make "a [print true]
make "b [print false]
# First test with the primitive if--> The second list can’t be evaluated.
if 1=2 :a :b
What to do with [print false]?
# Second test with the primitive ifelse --> success.
ifelse 1=2 :a :b
false