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"
endif / 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"
endif — это выражение
В 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 — локальная установка не требуется.
Все уроки этого курса
- if, unless и тернарный оператор
- Выражения case/when
- Истинность в Ruby
- Защитные условия