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

Информация, представленная ниже, ориентирована на программистов, которые только начинают знакомиться с Ruby.

Определение

Условный оператор – некоторый набор инструкций (алгоритмов), который будет реализовываться в зависимости от истинности заданного для расчетов выражения. Основа реализации ветвлений с if и другими «командами».

Условные операторы the if и switch являются фундаментом разработки программного обеспечения. Они успешно используются в различных языках программирования, а не только в Руби.

Ветвление – конструкция, управляющая ходом работы/выполнения имеющегося программного обеспечения. В зависимости от того, выполнено ли условие (the condition) или нет, будет меняться дальнейший алгоритм (поведение контента).

Классификация

The Ruby if (или ветвление) – конструкция, которая в рассматриваемом языке разработки может быть представлена несколькими способами. Аналогичным образом ситуация обстоит с иными самыми известными ЯП. В зависимости от задействованной конструкции if будет меняться не только «сложность» кода, но и его непосредственное поведение.

На данный момент поддерживается следующая классификация the if в Руби:

  • с одной веткой;
  • двойное ветвление;
  • множественное ветвление;
  • тернарный оператор;
  • ветвление с выбором условия (switch-case).

Чтобы лучше разобраться с выбором алгоритмов в исходном приложении, каждый предложенный вариант the if в Ruby будет изучен более подробно.

Одна ветка

Оператор If – простейший вариант выбора дальнейшего поведения программы. Элементарная условная конструкция. Она часто используется в циклах. Встречается почти во всех языках программирования.

Синтаксическая форма записи выглядит так:

Условные операторы Ruby

Здесь, если условие после if – это логическая истина (the true), будет выполняться блок кода, написанный до end. В противном случае соответствующий фрагмент пропускается. Управление программой переходит к оператору, идущим после if конструкции.

Сравнивание чисел

В виде условия в the Ruby используются выражения, проверяемые на истинность. Если оно будет the true, система выполнит заданный алгоритм. Когда значение равняется the false, блок с if просто пропускается системой. Соответствующие значения имеют определенное название – булевый тип данных.

Для того, чтобы записывать условия, используются:

  • числа;
  • операторы сравнения.
Условные операторы Ruby

Выше – наглядный пример реализации if команды для ветвления в Руби. Если в переменной age будет число, которое больше или равно 18, программа сообщит «Вам уже все можно». В противном случае – «Вам еще пока рановато!».

Сравнение строк

Сравнивать the Ruby позволяет не только цифры, но и строки. Для этого используется оператор «равно-равно». Он будет сравнивать строки/числа справа и слева от себя. Если они равны между собой, результатом станет логическая истина. В противном случае – the false.

Условные операторы Ruby

Вот – вариант реализации if в случае со строками. Перебрать все их варианты не всегда удается, поэтому для сравнения используется оператор «не равно» («!»). Он возвращает true, если операнды не равняются друг другу.

Две ветки

Более сложным вариантом в Ruby выступает if … else. Это «двойное» ветвление. Оно используется тогда, когда необходимо выполнить код при условии невыполнения заданного изначально «выражения».

Форма записи:

Условные операторы Ruby

Соответствующая конструкция включает в себя:

  • ключевое слово if;
  • выражение, которое будет рассчитываться и проверяться на факт истины;
  • блок кода, реализуемый при значении, равном true;
  • алгоритм, который начинает работать при результате расчетов «логическая ложь».
Условные операторы Ruby

Выше можно увидеть наглядный пример двойного ветвления. Соответствующие операции используются для более сложных задач, нежели просто if.

Множественное ветвление

Некоторые разработчики предпочитают «свободу выбора» в приложениях. Они предлагают несколько алгоритмов поведения контента в зависимости от заданного условия. Реализация в программном коде осуществляется через множественное ветвление.

Выглядит общая синтаксическая форма так:

Условные операторы Ruby

Здесь the Ruby поддерживает elsif. Система сначала произведет расчеты condition1 и сравнит его с заданным условием. Если результат – ложь, произойдет переход к первому блоку elsif, затем – ко второму и так далее. Происходит это до тех пор, пока система не обнаружит логическую истину. При ее отсутствии реализовывается блок, написанный после else.

Условные операторы Ruby

Вот так может выглядеть множественное ветвление. Оно позволяет формировать достаточно сложные алгоритмы с выбором.

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

Тернарный оператор в рассматриваемом языке программирования – это сокращенная вариация конструкции с if. Сначала он оценивает выражение (истина/ложь), а затем реализовывает одно из имеющихся утверждений.

У тернарного оператора, заменяющего короткую запись the if else Ruby, будет следующая форма записи:

Условные операторы Ruby
Условные операторы Ruby

Выше можно увидеть не только общую форму интерпретации, но и наглядный пример использования упомянутой конструкции. Никаких других функций, кроме как сокращение the if выражений соответствующие записи не несут.

Оператор case

Case-выражения в the Ruby используются для того, чтобы предоставить приложению и разработчикам выбор алгоритма в зависимости от того или иного условия. Базируется прием на полном соответствии «выражения».

Общая форма представления case (в большинстве других языков конструкция называется switch или switch-case) выглядит так:

Условные операторы Ruby

Часть else в предложенной записи может отсутствовать. Этот элемент отвечает за выбор алгоритма, который будет реализован, если ни одно case-where не идентифицировано в качестве истины.

Вот пример, в котором система выведет информацию об оценке ученика:

Условные операторы Ruby

Без использования case-блока можно переписать предложенный код с применением the if:

Условные операторы Ruby

Можно заметить, что исходный код с case является более компактным, лаконичным и читабельным.

When может включать в себя не только определенное значение, но и их диапазон. Соответствующие «параметры» пишутся в круглых скобках.

Интересует Ruby-разработка? Обратите внимание на специализированный курс в Otus «Ruby и Ruby on Rails Developer»!