Lua - while Loop
A while loop statement in Lua programming language repeatedly executes a target statement as long as a given condition is true.
Syntax
The syntax of a while loop in Lua programming language is as follows −
while(condition) do statement(s) end
Here, statement(s) may be a single statement or a block of statements. The condition may be any expression, and true is any non-zero value. The loop iterates while the condition is true.
When the condition becomes false, the program control passes to the line immediately following the loop.
Flow Diagram
Here, the key point to note is that the while loop might not be executed at all. When the condition is tested and the result is false, the loop body will be skipped and the first statement after the while loop will be executed.
Example: Printing Numbers in a Range Using while Loop
In this example, we're showing the use of a while loop to print numbers starting from 10 to 19. Here we've initialized an int variable x with a value of 10. Then in while loop, we're checking x as less than 20 and within while loop, we're printing the value of x and incrementing the value of x by 1. While loop will run until x becomes 20. Once x is 20, loop will stop execution and program exits.
main.lua
a = 10
while( a < 20 )
do
print("value of a:", a)
a = a+1
end
Output
When the above code is built and executed, it produces the following result −
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
Example: Printing Elements of an Array Using while Loop
In this example, we're showing the use of a while loop to print contents of an array. Here we're creating an array of integers as numbers and initialized it some values. We've created a variable named index to represent index of the array while iterating it. In while loop we're checking the index to be less than size of the array and printed the element of the array using index notation. index variable is incremented by 1 and loop continues till index becomes the sie of the array and loop exits.
main.lua
numbers = {10, 20, 30, 40, 50}
index = 1
while( index <= 5 )
do
print("value of item:", numbers[index])
index = index+1
end
Output
When the above code is built and executed, it produces the following result −
value of item: 10 value of item: 20 value of item: 30 value of item: 40 value of item: 50
Example: Infinite while Loop
You can implement an infinite while loop using the while loop statement by providing "true" as the test condition. In this example, we're showing the infinite loop using while loop. It will keep printing the numbers until you press ctrl+c to terminate the program.
main.lua
a = 10
while( true )
do
print("value of a:", a)
a = a+1
end
Output
When the above code is built and executed, it produces the following result −
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 ... ctrl+c