Bán một loại thuốc
Thuộc phần Nền tảng cơ bản trong hành trình Lua của Coddy. Bài học 82 trên 90.
Thử thách
DễHoàn thành dự án cửa hàng thuốc của bạn bằng cách triển khai hệ thống giao dịch bán hàng. Dựa trên chức năng tìm kiếm, hãy tạo hệ thống xử lý việc bán thuốc bằng cách giảm số lượng hàng trong kho và xác nhận giao dịch.
Đầu vào sẽ có dạng sau:
- Một chuỗi chứa tên loại thuốc cần bán
Dùng vòng lặp for với bộ đếm số để duyệt qua bảng inventory và tìm loại thuốc được chỉ định. Khi tìm thấy loại thuốc khớp bằng toán tử so sánh bằng ==, hãy giảm giá trị stock đi 1 để mô phỏng giao dịch bán hàng.
Sau khi cập nhật hàng trong kho, in thông báo xác nhận có tên loại thuốc và số lượng hàng mới theo định dạng:
Sold 1 [potion name]
Remaining stock: [new stock count]Dùng phép nối chuỗi để kết hợp phần mô tả với tên loại thuốc và số lượng hàng trong kho đã cập nhật. Sau khi xử lý giao dịch bán hàng, dùng câu lệnh break để thoát khỏi vòng lặp.
Tự làm thử
-- Inventory table with potion data
inventory = {
{name = "Health Potion", price = 15, stock = 8},
{name = "Mana Potion", price = 12, stock = 5},
{name = "Strength Potion", price = 25, stock = 3},
{name = "Speed Potion", price = 18, stock = 2}
}
-- Read the potion name to search for
search_name = io.read()
-- Use a numeric for loop to search through the inventory
for i = 1, #inventory do
if inventory[i].name == search_name then
print("Found: " .. inventory[i].name)
print("Price: " .. inventory[i].price .. " gold")
print("Stock: " .. inventory[i].stock .. " units")
break
end
endTất cả bài học trong Nền tảng cơ bản
4Toán tử 2: quan hệ và logic
Toán tử bằngToán tử quan hệToán tử andToán tử orToán tử notĐánh giá ngắn mạchGiá trị truthy và falsyÔn tập: logic đơn giản10Bảng phần 1: kiểu danh sách
Bảng là gì?Tạo bảngTruy cập phần tử theo chỉ sốSửa đổi phần tử theo chỉ sốToán tử độ dài '#'table.insert()table.remove()Ôn tập: quản lý thành viên nhóm13Dự án: Cửa hàng thuốc đơn giản
Thiết lập dự ánThêm một loại thuốc2Biến và kiểu dữ liệu
Biến là gì?Các sốChuỗiGiá trị BooleanGiá trị 'nil'Hàm type()Quy ước đặt tênÔn tập: hồ sơ nhân vật5Đầu ra cơ bản
In các giá trị cố địnhIn biếnIn nhiều giá trịKết hợp chuỗi và biếnHàm tostring()Đầu vàoÉp kiểuÔn tập: Báo cáo trạng tháiÔn tập: Đến 1208Cơ bản về thao tác với chuỗi
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Ôn tập: định dạng tên người dùng3Toán tử 1: số học và nối chuỗi
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaNối chuỗiThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giản6Dự án: Hiển thị chỉ số nhân vật
Lời chào mừngKhai báo chỉ số nhân vật9Cơ bản về hàm
Khai báo hàmGọi hàmHàm có tham sốHàm có nhiều tham sốCâu lệnh returnÔn tập: Máy tính diện tíchTự luyện tập: Trình biên dịch Lua online