There are two versions of the If
statement: A long and a short version.
1) Long version If statement:
If <expr> <block> [ElseIf <expr> <block> ...] [Else <block>] EndIf |
The If
statement checks if the given expression is true (non-zero). If this
is the case, the commands following the statement are executed. If the
given expression is false (zero), If
jumps to the next ElseIf
statement
(if there is any) and checks if the expression given there is true.
This is repeated until the Else
statement is reached. If none of the
expressions before was true, the code following Else
will be executed.
The statements If
and EndIf
are obligatory. ElseIf
and Else
statements are
optional. You can use as many ElseIf
's as you like but there must be only
one Else
in your If
statement. Furthermore, the Else
statement must be the
last condition before EndIf
. Here is an example:
If a > 5 ; check if a is greater than 5 DebugPrint("a > 5") ElseIf a < 5 ; check if a is less than 5 DebugPrint("a < 5") Else ; else a must be 5 DebugPrint("a = 5") EndIf |
You can also use more complex expressions as the condition:
If country$ = "USA" And age < 21 DebugPrint("No alcohol permitted under 21 in the USA!") EndIf |
2) Short version If statement:
If <expr> Then <true-stat> [ElseIf <expr> <true-stat> ...] [Else <stat>] |
The short version of the If
statement works in the same way as the long
version but has the advantage that you do not need to include an EndIf
.
The short If
statement has the restriction, that all of its parts have to
be placed on a single line. Another restriction is, that only one statement
must follow the Then
/ ElseIf
/ Else
identifiers. If you want to execute
multiple statements you have to use the long version.
Using the short If
statement we could write the example from above in
the following way:
If a>5 Then Print("a>5") ElseIf a<5 Print("a<5") Else Print("a=5") |
You can see that the result is not very readable, so in the case of the
example from above, it is not recommended to use the short version. The
short If
statement does better fit if you just have one condition, e.g.
If a = True Then b = 5 |
This is better readable than
If a = True b = 5 EndIf |
Another version of the If
statement is the so called
immediate-if statement IIf(). This version is implemented as
a command in Hollywood and it is part of the system library. See IIf for details.