Menu
Coddy logo textTech

Вложенные конструкции If - Else

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

Что если вам нужно проверить более двух условий? Вы можете поместить оператор if-else внутрь другого оператора if-else. Это называется вложенностью, и это позволяет вам обрабатывать несколько точек принятия решений.

score = 85

if score >= 90
  puts "Grade: A"
else
  if score >= 80
    puts "Grade: B"
  else
    puts "Grade: C"
  end
end

Ruby проверяет первое условие. Если оно ложно, он переходит к блоку else, где ожидает другой if-else. Это создает цепочку решений, каждое из которых сужает круг возможностей.

Ruby предоставляет более лаконичный способ записи этого с помощью elsif, который объединяет else и if в одно ключевое слово:

score = 85

if score >= 90
  puts "Grade: A"
elsif score >= 80
  puts "Grade: B"
else
  puts "Grade: C"
end

Оба примера дают одинаковый результат, но elsif делает ваш код более плоским и удобным для чтения. Вы можете объединять в цепочку столько условий elsif, сколько вам нужно, а финальный else перехватывает все, что не соответствует предыдущим условиям.

challenge icon

Задание

Легко

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

temperature = 15

Создайте систему рекомендаций по погоде, используя if, elsif и else, чтобы классифицировать температуру и вывести соответствующее сообщение:

  • Если temperature больше или равно 30, выведите Hot - Stay hydrated
  • Если temperature больше или равно 20, выведите Warm - Enjoy the day
  • Если temperature больше или равно 10, выведите Cool - Bring a jacket
  • Если temperature больше или равно 0, выведите Cold - Bundle up
  • В противном случае выведите Freezing - Stay indoors

Выведите только одно сообщение, соответствующее температуре.

Шпаргалка

Вы можете вкладывать операторы if-else друг в друга для проверки нескольких условий:

score = 85

if score >= 90
  puts "Grade: A"
else
  if score >= 80
    puts "Grade: B"
  else
    puts "Grade: C"
  end
end

Ruby предоставляет elsif как более чистый способ объединения нескольких условий в цепочку:

score = 85

if score >= 90
  puts "Grade: A"
elsif score >= 80
  puts "Grade: B"
else
  puts "Grade: C"
end

Вы можете объединять в цепочку столько условий elsif, сколько необходимо. Последний else перехватывает все, что не соответствует предыдущим условиям.

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

temperature = 15

# TODO: Напишите ниже свой код для классификации температуры
# Используйте if, elsif и else для вывода соответствующего сообщения с рекомендациями по погоде
quiz iconПроверьте себя

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

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