While


The While Loop is a "condition-controlled" loop, which executes a block of code 0 or more times, stopping when the controlling condition is true.

While loops follow the pattern:

while [boolean expression] do
    -- loop body
    -- repeat as long as boolean expression is true
end

As a simple example, let's sum up all numbers from 0 to 4:

local x = 0

local result = 0

while x < 5 do
    result = result + x

    x = x + 1
end

print(result) -- 10

The break statement can be used to terminate a while loop early. The following is equivalent to the previous example.

local x = 0

local result = 0

while true do
    result = result + x

    x = x + 1

    if x >= 5 then
        break
    end
end

print(result) -- 10

Note that in this case we used a boolean expression that is simply true. This is a common practice in many situations, but requires a bit of care in order to prevent infinite loops.

We should point out that when a While Loop is contained within a function, the loop can also terminate when it encounters a return statement:

local function sum()
    local x = 0
    local result = 0

    while true do
        result = result + x

        x = x + 1

        if x >= 5 then
            return result
        end
    end
end

print(sum()) -- 10