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

while loop in Lua

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
lua_loops.htm
Advertisements