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:
- if devLevel >= 18 then: Dòng này kiểm tra xem biến age có lớn hơn hoặc bằng 18 không.
- print(“WOW! REALLY GREAT”): Nếu điều kiện (devLevel >= 18) là đúng, dòng này sẽ được thực thi và in ra “WOW! REALLY GREAT”.
🔄 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:
- Viết một câu lệnh if để kiểm tra xem một biến number có phải là số dương không.
- Mở rộng câu lệnh if với elseif và else để bao phủ các giá trị khác nhau.
- Thay đổi giá trị biến và kiểm tra các điều kiện khác nhau để xem kết quả.
📜 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:
- local i = 1: Khởi tạo biến i với giá trị là 1.
- while i ⇐ 5 do: Thiết lập điều kiện để vòng lặp chạy khi i nhỏ hơn hoặc bằng 5.
- print(“i = ” .. i): In ra giá trị hiện tại của i.
- i = i + 1: Tăng i thêm 1 mỗi vòng lặp để tránh lặp vô hạn.
🔂 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:
- for i = 1, 5 do: Khởi tạo i là 1 và lặp đến 5.
- print(“i = ” .. i): In ra giá trị hiện tại của i trong mỗi lần lặp.
🔁 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:
- repeat: Bắt đầu khối vòng lặp.
- print(“i = ” .. i): In ra giá trị hiện tại của i.
- i = i + 1: Tăng i lên 1 mỗi lần lặp.
- until i > 5: Kết thúc vòng lặp khi i lớn hơn 5.
📝 Bài tập:
- Viết một vòng lặp while để đếm ngược từ 10 đến 1 và in ra từng số.
- Sử dụng vòng lặp for để in ra các số chẵn từ 1 đến 10.
- Triển khai vòng lặp repeat…until để yêu cầu người dùng nhập cho đến khi nhập một số hợp lệ.
📜 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:
- function square(num): Định nghĩa hàm tên là square nhận một tham số num.
- return num * num: Tính bình phương của num và trả về kết quả cho nơi gọi.
🎯 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:
- Viết một hàm tính diện tích hình chữ nhật khi biết chiều dài và chiều rộng.
- Tạo một hàm chuyển đổi từ độ C sang độ F.
- Triển khai một hàm kiểm tra xem một số có phải là số nguyên tố không và trả về true hoặc false.
📜 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