Menu
CoddyTech

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 2
challenge icon

Thử 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:

  • score1 với giá trị 85
  • score2 với giá trị 92
  • score3 vớ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)
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Lua online