Menu
Coddy logo textTech

Тернарный оператор

Часть раздела Логика и управление потоком путешествия по Ruby на Coddy — урок 40 из 56.

Тернарный оператор — это однострочное сокращение для if/else, которое возвращает значение. Синтаксис: condition ? value_if_true : value_if_false.

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

Это то же самое, что написать:

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

Используйте тернарный оператор, когда обе ветви возвращают короткие значения. Если любой из ветвей требуется более одного выражения, вернитесь к обычному if/else: слишком большое количество кода в тернарном операторе затрудняет чтение.

Вы можете использовать его непосредственно внутри других выражений, включая интерполяцию:

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 item
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 items
challenge icon

Задание

Легко

Считайте целое число n из входных данных. Используя тернарный оператор (без блоков if/else), выведите ровно:

<n> is <label>

где label это:

  • positive когда n > 0
  • negative когда n < 0
  • zero когда n == 0

Подсказка: используйте вложенный тернарный оператор, condition ? a : (other_condition ? b : c).

Для входного значения 5 вывод будет 5 is positive. Для 0 это 0 is zero.

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

n = gets.to_i

# TODO: используйте тернарное выражение для создания метки, затем puts
quiz iconПроверьте себя

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

Все уроки раздела Логика и управление потоком