Thứ tự ưu tiên của toán tử
Thuộc phần Nền tảng cơ bản trong hành trình Lua của Coddy. Bài học 16 trên 90.
Khi viết biểu thức toán học có nhiều toán tử, Lua tuân theo các quy tắc cụ thể để xác định phép tính nào được thực hiện trước. Khái niệm này gọi là độ ưu tiên của toán tử (operator precedence), và hoạt động giống như thứ tự thực hiện phép tính mà bạn đã học trong toán học.
Trong Lua, phép nhân và phép chia được thực hiện trước phép cộng và phép trừ:
result = 2 + 3 * 4 -- result là 14, không phải 20
-- Lua tính 3 * 4 trước (12), rồi cộng 2
result = 10 - 6 / 2 -- result là 7, không phải 2
-- Lua tính 6 / 2 trước (3), rồi lấy 10 trừ đi kết quả đóĐể kiểm soát thứ tự thực hiện các phép toán, bạn có thể dùng dấu ngoặc đơn (). Các phép toán bên trong dấu ngoặc đơn luôn được thực hiện trước:
result = (2 + 3) * 4 -- result bằng 20
-- Lua tính 2 + 3 trước (5), rồi nhân với 4
result = (10 - 6) / 2 -- result bằng 2
-- Lua tính 10 - 6 trước (4), rồi chia cho 2Thử thách
DễTính điểm trung bình của ba bài kiểm tra bằng cách dùng đúng thứ tự ưu tiên của toán tử. Tạo ba biến cho điểm số, sau đó viết một biểu thức duy nhất để tính chính xác điểm trung bình.
Tạo các biến sau:
score1với giá trị85score2với giá trị92score3với giá trị78
Viết một biểu thức duy nhất để tính điểm trung bình bằng cách cộng cả ba điểm rồi chia cho 3. Dùng dấu ngoặc đơn để phép cộng diễn ra trước phép chia. Lưu kết quả vào một biến có tên average rồi in ra.
Tự làm thử
-- Tạo các biến điểm kiểm tra
local score1 = 85
local score2 = 92
local score3 = 78
-- TODO: Viết code ở đây để tính điểm trung bình theo đúng thứ tự ưu tiên của các toán tử
-- In kết quả ra
print(average)Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tấ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