User Tools

Site Tools


developer_center:developer_editor:script:control_structures_and_functions_in_lua

Control Structures and Functions in Lua

1. Conditional Statements

Conditional statements allow your program to make decisions based on certain conditions. In Lua, you use if, elseif, and else to implement conditional logic.

If Statement

The if statement evaluates a condition and executes a block of code if the condition is true. Code Example:

local devLevel = 18

if devLevel >= 18 then
    print("WOW! REALLY GREAT")
end

Explanation:

  • if devLevel >= 18 then: This line checks if the variable age is greater than or equal to 18.
  • print(“WOW! REALLY GREAT”): If the condition (devLevel >= 18) is true, then this line will execute and print “WOW! REALLY GREAT”

Elseif and Else Statements

You can use elseif to check additional conditions and else to provide a default action if none of the conditions are true.

Code Example:

local temperature = 25

if temperature > 30 then
    print("It's hot outside!")
elseif temperature > 20 then
    print("It's warm outside.")
else
    print("It's cool outside.")
end

Exercise:

  • Write an if statement to check if a variable number is positive.
  • Extend the if statement with elseif and else to cover different ranges of values.
  • Modify the variables and test different conditions to see the output.

Example Exercise Code:

local number = 10
 
if number > 0 then
    print("The number is positive.")
elseif number < 0 then
    print("The number is negative.")
else
    print("The number is zero.")
end

2. Loops

Loops are used to repeat a block of code multiple times. Lua supports while, for, and repeat…until loops.

While Loop

The while loop repeats a block of code while a condition is true.

Code Example:

local i = 1
while i <= 5 do
    print("i = " .. i)
    i = i + 1
end

Explanation:

  • local i = 1: Initializes a variable i with a value of 1.
  • while i ⇐ 5 do: This line sets up the condition to execute the loop as long as i is less than or equal to 5.
  • print(“i = ” .. i): Prints the current value of i.
  • i = i + 1: Increments i by 1 in each iteration to avoid an infinite loop.

For Loop

The for loop iterates over a range of values specified by the user.

Code Example:

for i = 1, 5 do
    print("i = " .. i)
end

Explanation:

  • for i = 1, 5 do: This line initializes i to 1 and iterates up to 5.
  • print(“i = ” .. i): Prints the current value of i in each iteration.

Repeat...Until Loop

The repeat…until loop executes a block of code at least once and continues to repeat until a condition becomes true.

Code Example:

local i = 1
repeat
    print("i = " .. i)
    i = i + 1
until i > 5

Explanation:

  • repeat: Starts the loop block.
  • print(“i = ” .. i): Prints the current value of i.
  • i = i + 1: Increments i by 1 in each iteration.
  • until i > 5: Ends the loop when i becomes greater than 5.

Exercise:

  • Write a while loop to count from 10 to 1 and print each number.
  • Use a for loop to print even numbers from 1 to 10.
  • Implement a repeat…until loop to prompt the user for input until they enter a valid number.

Example Exercise Code:

  -- while loop
  local countdown = 10
  while countdown >= 1 do
      print(countdown)
      countdown = countdown - 1
  end
 
-- for loop
for i = 2, 10, 2 do
    print(i)
end
 
-- repeat...until loop
local userInput
repeat
    print("Enter a number: ")
    userInput = io.read("*n")  -- Read a number from input
until userInput ~= nil
print("You entered: " .. userInput)

3. Functions

Functions are blocks of code that perform a specific task and can be reused throughout your program. They help in organizing code and making it more readable.

Defining Functions

You define a function in Lua using the function keyword followed by the function name and parameters.

Code Example:

-- Function to calculate the square of a number
function square(num)
    return num * num
end
 
-- Calling the function
local result = square(5)
print("Square: " .. result)  -- prints: 25

Explanation:

  • function square(num): Defines a function named square that takes a parameter num.
  • return num * num: Computes the square of num and returns the result to the caller.

Parameters and Return Values

Functions can have parameters (input values) and return values (output values).

Code Example:

-- Function with parameters and return value
function greet(name)
    return "Hello, " .. name .. "!"
end
 
-- Calling the function
local message = greet("Lua Learner")
print(message)  -- prints: Hello, Lua Learner!

Exercise:

  • Write a function that calculates the area of a rectangle given its length and width.
  • Create a function that converts Celsius to Fahrenheit.
  • Implement a function that checks if a number is prime and returns true or false.

Example Exercise Code:

-- Function to calculate the area of a rectangle
function calculateArea(length, width)
    return length * width
end
 
-- Function to convert Celsius to Fahrenheit
function celsiusToFahrenheit(celsius)
    return celsius * 9 / 5 + 32
end
 
-- Function to check if a number is prime
function isPrime(number)
    if number <= 1 then
        return false
    elseif number == 2 then
        return true
    else
        for i = 2, math.sqrt(number) do
            if number % i == 0 then
                return false
            end
        end
        return true
    end
end
 
-- Example usage
local area = calculateArea(5, 10)
print("Area of rectangle: " .. area)
 
local fahrenheitTemp = celsiusToFahrenheit(25)
print("Temperature in Fahrenheit: " .. fahrenheitTemp)
 
local num = 17
if isPrime(num) then
    print(num .. " is a prime number.")
else
    print(num .. " is not a prime number.")
end
developer_center/developer_editor/script/control_structures_and_functions_in_lua.txt · Last modified: 2024/07/14 05:04 by don