# Conditional expressions

Conditional expressions evaluate and return boolean (TRUE and FALSE) expressions for conditional and looping expressions. They can contain conditional operators, and and or.

Examples of conditional expressions:

    ; The branch is taken if SomeVar is TRUE, *or* both the following things are true:
    ; SomeOtherVar is TRUE and AnotherVar is FALSE.
    (if (or SomeVar (and SomeOtherVar (not AnotherVar)))
            (= x 10)
    else
            (= x 20)
    )

    ; The or and and operators can take multiple arguments. In this case, if either SomeVar,
    ; AnotherVar or AThirdVar are TRUE, the branch will be taken.
    (if (or SomeVar AnotherVar AThirdVar)
            (= x 10)
    )

    ; Sometimes it can be useful to place the condition terms on more than one line
    ; Here the branch is taken if the ego is on green, its x coordinate is less than 100,
    ; and it has the radio transmitter in its inventory.
    (if (and
                    (& ctlGREEN (gEgo onControl:))
                    (< 100 (gEgo x?))
                    (gEgo has: INV_TRANSMITTER)
            )
            (Print "The transmitter begins to beep")
    )