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"
endCâ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"
endTuy 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.
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 = falseDù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ó).
- Nếu
has_ticketkhông phảitrue, hãy inPlease purchase a ticket - Nếu
is_vipkhông phảitrue, hãy inVIP access required - Nếu
items_in_cartkhông lớn hơn0, hãy inYour cart is empty - Nếu
battery_levelkhông lớn hơn20, hãy inLow battery warning - Nếu
is_chargingkhông phảitruehoặcbattery_levelkhông lớn hơn50, hãy inPlease 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ợpBà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
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online