Menu
CoddyTech

Toán tử ba ngôi

Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 40 trên 56.

Toán tử ba ngôi là cách viết tắt trên một dòng của câu lệnh if/else, trả về một giá trị. Cú pháp là condition ? value_if_true : value_if_false.

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status   # Eligible

Cách này giống như viết:

status = if age >= 18
           "Eligible"
         else
           "Not Eligible"
         end

Dùng toán tử ba ngôi khi cả hai nhánh đều trả về giá trị ngắn. Nếu một trong hai nhánh cần nhiều hơn một biểu thức, hãy dùng câu lệnh if/else thông thường: nhồi quá nhiều thứ vào toán tử ba ngôi sẽ khiến code khó đọc.

Bạn có thể dùng trực tiếp bên trong các biểu thức khác, bao gồm cả phép nội suy:

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 món
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 món
challenge icon

Thử thách

Dễ

Đọc một số nguyên n từ đầu vào. Dùng toán tử ba ngôi (không dùng khối lệnh if/else), in chính xác:

<n> is <label>

trong đó label là:

  • positive khi n > 0
  • negative khi n < 0
  • zero khi n == 0

Gợi ý: dùng toán tử ba ngôi lồng nhau, condition ? a : (other_condition ? b : c).

Với đầu vào 5, đầu ra là 5 is positive. Với 0, đầu ra là 0 is zero.

Tự làm thử

n = gets.to_i

# TODO: dùng biểu thức ba ngôi (ternary expression) để tạo nhãn, sau đó dùng puts
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 Logic và luồng xử lý

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