Conditional statements control program flow by evaluating an expression then proceeding to one or more different "paths" depending on the result.
Lua implements conditional statements with the if-then
statement, which supports several
variations.
If-Then
The most simple conditional statement contains a single boolean condition that directs program flow to a branch if that condition evaluates to true.
if-then
statements in Lua follow the pattern:
if [boolean expression] then
-- execute when boolean expression is true
end
The following is a simple example of the if-then
statement:
local x = 2
local y = 3
local result
if x > y then
result = x + y
end
print(result) -- nil
It this example the values of the x
and y
variables are compared and, because x
is not greater
than y
, the conditional branch is not executed, and result
is not assigned a value.
If-Then-Else
In the previous example we created a block of code that is only executed if a specific condition
exists. Sometimes we need a bit more control over program flow, and want program flow to take one of
two paths, depending on the conditional. For this, Lua has the if-then-else
statement, which
follows the pattern:
if [boolean expression] then
-- execute when boolean expression is true
else
-- execute when boolean expression is false
end
Let's look at a simple example:
local x = 2
local y = 3
local result
if x > y then
result = x + y
else
result = 5
end
print(result) -- 5
If-Then-Elseif-Else
if [boolean expression #1] then
-- execute when boolean expression #1 is true
elseif [boolean expression #2] then
-- execute when boolean expression #2 is true
elseif [boolean expression #n] then
-- execute when boolean expression #n is true
else -- optional
-- execute when all boolean expressions are false
end
The expression can include any number of elseif
clauses, allowing program flow to take any number
of alternate paths. Note that the else
clause is optional. When included this branch will execute
only of all other conditionals are false
.
Let's extend our example to include a second conditional statement:
local x = 2
local y = 3
local result
if x > y then
result = x + y
elseif x < y then
result = 10
else
result = 5
end
print(result) -- 10
Now that we have seen how if-then
statements work, the next section will take a quick look at
using the and and or to perform simple conditional
statements.