Menu
Coddy logo textTech

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

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

Оператор ternary — это однострочное сокращение для 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

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

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

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 элемент
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 элементов
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Проверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby