Вложенные конструкции 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
endRuby проверяет первое условие. Если оно ложно, он переходит к блоку 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 перехватывает все, что не соответствует предыдущим условиям.
Задание
ЛегкоВам предоставлена следующая переменная:
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
endRuby предоставляет 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 для вывода соответствующего сообщения с рекомендациями по погодеВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь