Menu
Coddy logo textTech

Оператор Unless

Часть раздела Основы путешествия по Ruby на Coddy — урок 25 из 88.

Ruby предлагает уникальный способ выражения условий, когда вы хотите выполнить код только в том случае, если что-то не является истинным. Оператор unless, по сути, является противоположностью if.

С if код выполняется, когда условие истинно. С unless код выполняется, когда условие ложно:

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

Это эквивалентно записи if !logged_in, но unless часто читается более естественно. Воспринимайте это как «делай это, если только это условие не истинно».

Вы также можете использовать unless с else:

age = 20

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

Тем не менее, когда вам нужен блок else, использование if обычно понятнее. Инструкция unless лучше всего подходит, когда у вас есть простое отрицательное условие без альтернативного пути. Выбирайте тот вариант, который делает ваш код более читаемым с первого взгляда.

challenge icon

Задание

Легко

Вам предоставлены следующие переменные:

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

Используйте операторы unless для оценки каждого сценария ниже. Выводите указанное сообщение только тогда, когда условие ложно (именно в этом случае unless выполняет свой блок).

  1. Если не (unless) has_ticket имеет значение true, выведите Please purchase a ticket
  2. Если не (unless) is_vip имеет значение true, выведите VIP access required
  3. Если не (unless) items_in_cart больше 0, выведите Your cart is empty
  4. Если не (unless) battery_level больше 20, выведите Low battery warning
  5. Если не (unless) is_charging имеет значение true или battery_level больше 50, выведите Please charge your device

Каждое сообщение должно выводиться на отдельной строке. Выводите сообщения только для тех условий, которые активируют блок unless.

Попробуйте сами

# Переменные уже определены за вас
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

# TODO: Напишите свой код ниже
# Используйте операторы unless, чтобы проверить каждое условие и вывести соответствующее сообщение
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы