Menu
CoddyTech

Câu lệnh unless

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 25 trên 88.

Ruby có cách biểu đạt điều kiện riêng khi bạn chỉ muốn chạy code nếu điều gì đó không đúng. Câu lệnh unless về cơ bản là ngược lại với if.

Với if, code chạy khi điều kiện đúng. Với unless, code chạy khi điều kiện sai:

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

Câu lệnh này tương đương với việc viết if !logged_in, nhưng unless thường dễ đọc hơn. Hãy hiểu là “làm việc này trừ khi điều kiện đó đúng”.

Bạn cũng có thể dùng unless cùng với else:

age = 20

unless age < 18
  puts "Access granted"
else
  puts "Access denied"
end

Tuy nhiên, khi cần một khối lệnh else, thường thì dùng if sẽ rõ ràng hơn. Câu lệnh unless phù hợp khi bạn có một điều kiện phủ định đơn giản mà không có hướng xử lý thay thế. Hãy chọn cách giúp bạn đọc lướt đoạn code dễ hơn.

challenge icon

Thử thách

Dễ

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

has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

Dùng câu lệnh unless để đánh giá từng tình huống bên dưới. Chỉ in thông báo được chỉ định khi điều kiện là false (đó là khi unless thực thi khối lệnh của nó).

  1. Nếu has_ticket không phải true, hãy in Please purchase a ticket
  2. Nếu is_vip không phải true, hãy in VIP access required
  3. Nếu items_in_cart không lớn hơn 0, hãy in Your cart is empty
  4. Nếu battery_level không lớn hơn 20, hãy in Low battery warning
  5. Nếu is_charging không phải true hoặc battery_level không lớn hơn 50, hãy in Please charge your device

Mỗi thông báo phải xuất hiện trên một dòng riêng. Chỉ in thông báo cho những điều kiện kích hoạt khối lệnh unless.

Tự làm thử

# Các biến (variable) đã được định nghĩa sẵn cho bạn
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

# TODO: Viết code bên dưới
# Dùng câu lệnh unless để kiểm tra từng điều kiện và in ra thông báo phù hợp
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