Menu
CoddyTech

Toán tử logic phần 4

Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 20 trên 88.

Khi kết hợp nhiều toán tử logic trong một biểu thức, Ruby sẽ đánh giá chúng theo một thứ tự cụ thể dựa trên độ ưu tiên của toán tử. Hiểu rõ thứ tự này giúp bạn viết các điều kiện chính xác và tránh kết quả ngoài dự kiến.

Thứ tự ưu tiên từ cao nhất đến thấp nhất là: ! (phủ định), tiếp theo là && (và), rồi đến || (hoặc). Điều này có nghĩa là ! được tính trước, tiếp theo là &&, cuối cùng là ||:

true || false && false   # true (&& được tính trước)
# Tương đương với: true || (false && false)

!false && true           # true (! được tính trước)
# Tương đương với: (!false) && true

Bạn có thể dùng dấu ngoặc đơn để thay đổi thứ tự ưu tiên mặc định và làm rõ ý định của mình:

(true || false) && false  # false (dấu ngoặc buộc tính || trước)
true || (false && false)  # true (cách tính mặc định)

Ngay cả khi dấu ngoặc đơn không thực sự cần thiết, việc thêm chúng thường giúp biểu thức phức tạp dễ đọc hơn. Khi phân vân, hãy dùng dấu ngoặc đơn để thể hiện rõ cách nhóm các điều kiện.

challenge icon

Thử thách

Dễ

Bạn được cung cấp các biến sau:

x = true
y = false
z = true
a = false

Hãy đánh giá các biểu thức sau và hiển thị kết quả của từng biểu thức trên một dòng riêng. Hãy chú ý đến thứ tự ưu tiên của toán tử: ! được đánh giá trước, tiếp theo là &&, cuối cùng là ||.

  1. x || y && z
  2. !y && z
  3. x && y || z
  4. !a || y && z
  5. x && !y && z
  6. (x || y) && a
  7. x || (y && a)
  8. !(x && y) || z

Mỗi kết quả đầu ra phải là true hoặc false.

Tự làm thử

# Các biến đã được định nghĩa sẵn cho bạn
x = true
y = false
z = true
a = false

# TODO: Tính giá trị từng biểu thức và in kết quả, mỗi kết quả trên một dòng riêng
# Nhớ thứ tự ưu tiên của toán tử: ! trước, rồi đến &&, sau đó là ||

# 1. x || y && z
puts # biểu thức của bạn ở đây

# 2. !y && z
puts # biểu thức của bạn ở đây

# 3. x && y || z
puts # biểu thức của bạn ở đây

# 4. !a || y && z
puts # biểu thức của bạn ở đây

# 5. x && !y && z
puts # biểu thức của bạn ở đây

# 6. (x || y) && a
puts # biểu thức của bạn ở đây

# 7. x || (y && a)
puts # biểu thức của bạn ở đây

# 8. !(x && y) || z
puts # biểu thức của bạn ở đây
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 Kiến thức nền tảng

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