Mục lục

🎮 Cấu trúc điều khiển và hàm trong Lua

🧠 1. Câu lệnh điều kiện

Câu lệnh điều kiện cho phép chương trình của bạn đưa ra quyết định dựa trên một số điều kiện nhất định. Trong Lua, bạn sử dụng if, elseif, và else để triển khai logic điều kiện.

✅ Câu lệnh If

Câu lệnh if kiểm tra một điều kiện và thực thi một khối mã nếu điều kiện đó đúng.
📜 Ví dụ mã:

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

📌 Giải thích:

🔄 Câu lệnh Elseif và Else

Bạn có thể sử dụng elseif để kiểm tra các điều kiện bổ sung và else để thực hiện hành động mặc định nếu không có điều kiện nào đúng.
📜 Ví dụ mã:

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

📝 Bài tập:

📜 Ví dụ mã bài tập:

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. Vòng lặp

Vòng lặp được sử dụng để lặp lại một khối mã nhiều lần. Lua hỗ trợ các vòng lặp while, for, và repeat…until.

🔄 Vòng lặp While

Vòng lặp while lặp lại một khối mã trong khi điều kiện là đúng.
📜 Ví dụ mã:

local i = 1
while i <= 5 do
    print("i = " .. i)
    i = i + 1
end
📌 Giải thích:

🔂 Vòng lặp For

Vòng lặp for lặp qua một dãy giá trị do người dùng chỉ định.
📜 Ví dụ mã:

for i = 1, 5 do
    print("i = " .. i)
end
📌 Giải thích:

🔁 Vòng lặp Repeat...Until

Vòng lặp repeat…until sẽ thực thi ít nhất một lần và tiếp tục lặp lại cho đến khi điều kiện trở thành đúng.
📜 Ví dụ mã:

local i = 1
repeat
    print("i = " .. i)
    i = i + 1
until i > 5
📌 Giải thích:

📝 Bài tập:

📜 Ví dụ mã bài tập:

-- 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")  -- Đọc một số từ đầu vào
until userInput ~= nil
print("You entered: " .. userInput)

🧩 3. Hàm

Hàm là các khối mã thực hiện một tác vụ cụ thể và có thể được sử dụng lại trong toàn bộ chương trình. Chúng giúp tổ chức mã và làm cho chương trình dễ đọc hơn.

✏️ Định nghĩa hàm

Bạn định nghĩa một hàm trong Lua bằng từ khóa function theo sau là tên hàm và các tham số.
📜 Ví dụ mã:

-- Hàm tính bình phương của một số
function square(num)
    return num * num
end
 
-- Gọi hàm
local result = square(5)
print("Square: " .. result)  -- in ra: 25
📌 Giải thích:

🎯 Tham số và giá trị trả về

Hàm có thể có tham số (giá trị đầu vào) và giá trị trả về (giá trị đầu ra).
📜 Ví dụ mã:

-- Hàm với tham số và giá trị trả về
function greet(name)
    return "Hello, " .. name .. "!"
end
 
-- Gọi hàm
local message = greet("Lua Learner")
print(message)  -- in ra: Hello, Lua Learner!

📝 Bài tập:

📜 Ví dụ mã bài tập:

-- Hàm tính diện tích hình chữ nhật
function calculateArea(length, width)
    return length * width
end
 
-- Hàm chuyển độ C sang độ F
function celsiusToFahrenheit(celsius)
    return celsius * 9 / 5 + 32
end
 
-- Hàm kiểm tra số nguyên tố
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
 
-- Ví dụ sử dụng
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