0Pricing
Ruby Academy · Урок

if, unless и тернарный оператор

Основы ветвления

«if, unless и тернарный оператор» — бесплатный урок Ruby Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.

Основы ветвления

Программам необходимо принимать решения. В Ruby ключевое слово if выполняет блок кода только тогда, когда условие является истинным.

Выражение if вычисляет условие и, если оно выполняется, запускает код между if и end.

age = 20
if age >= 18
  puts "You are an adult"
end

if / else

Добавьте ветвь else, чтобы обработать случай, когда условие является ложным. Выполняется ровно одна ветвь.

age = 12
if age >= 18
  puts "Adult"
else
  puts "Minor"
end

Цепочки elsif

Используйте elsif, чтобы последовательно проверить несколько условий. Ruby проверяет их сверху вниз и выполняет первую подходящую ветвь.

  • Обратите внимание на написание: elsif, а не elseif и не else if.
score = 75
if score >= 90
  puts "A"
elsif score >= 70
  puts "B"
elsif score >= 50
  puts "C"
else
  puts "F"
end

if — это выражение

В Ruby почти всё является выражением, которое возвращает значение. if возвращает значение выполнившейся ветви, поэтому его можно присвоить переменной.

age = 20
status = if age >= 18
  "adult"
else
  "minor"
end
puts status

Модификатор if

Для одного короткого оператора поставьте if в конце строки. Такая запись почти читается как обычное предложение и очень распространена в идиоматичном Ruby.

temperature = 35
puts "It is hot!" if temperature > 30

Знакомство с unless

unless противоположен if: он выполняет тело, когда условие является ложным. Представляйте unless x как if !x.

logged_in = false
unless logged_in
  puts "Please log in"
end

Модификатор unless

Как и if, unless можно использовать как завершающий модификатор в однострочных конструкциях.

stock = 0
puts "Out of stock" unless stock > 0

Избегайте unless с else

unless может содержать else, но такую конструкцию быстро становится трудно читать. Если нужны обе ветви, предпочтительнее обычный if.

active = false
unless active
  puts "Inactive"
else
  puts "Active"
end
# Clearer as a normal if/else

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

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

age = 20
label = age >= 18 ? "adult" : "minor"
puts label

Тернарный оператор внутри строк

Тернарный оператор особенно удобен внутри интерполяции строк, где полноценная конструкция if/else выглядела бы громоздко.

count = 1
puts "You have #{count} item#{count == 1 ? "" : "s"}"

Когда что использовать

Краткое руководство:

  • if / elsif / else — для общего ветвления.
  • unless — для одной отрицательной проверки, которая естественно читается.
  • Тернарный оператор — для выбора между двумя простыми значениями.

Удобочитаемость всегда важнее остроумных решений.

n = 7
parity = n.even? ? "even" : "odd"
puts "#{n} is #{parity}"

Быстрая проверка

Проверьте, насколько хорошо Вы понимаете ветвление.

Итоги

Вы изучили средства ветвления Ruby:

  • if / elsif / else выполняют код в зависимости от истинности.
  • if является выражением и возвращает значение.
  • Формы с модификатором (do_x if cond) подходят для коротких однострочных конструкций.
  • unless — это if !; используйте его для ясных отрицательных проверок.
  • Тернарный оператор ? : кратко выбирает одно из двух значений.
grade = 88
result = grade >= 60 ? "pass" : "fail"
puts "Result: #{result}"

Часто задаваемые вопросы

Урок «if, unless и тернарный оператор» бесплатный?

Да — полный текст урока «if, unless и тернарный оператор» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.

Чему я научусь в уроке «if, unless и тернарный оператор»?

Основы ветвления Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ruby Academy?

Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «if, unless и тернарный оператор»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ruby Academy?

Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. if, unless и тернарный оператор
  2. Выражения case/when
  3. Истинность в Ruby
  4. Защитные условия
← Назад к Ruby Academy