Menu
CoddyTech

Логические операторы. Часть 3

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

Ruby также предоставляет словесные альтернативы для логических операторов: and, or и not. Они работают аналогично &&, || и !, но есть одно важное отличие: у них более низкий приоритет.

true and false   # false (то же, что и &&)
true or false    # true (то же, что и ||)
not true         # false (то же, что и !)

Более низкий приоритет означает, что эти операторы вычисляются после присваивания. Это может привести к неожиданному поведению:

result = true && false   # result имеет значение false
result = true and false  # result имеет значение true!

Во втором примере сначала выполняется присваивание (result = true), затем вычисляется and false, но его результат отбрасывается. Именно поэтому большинство разработчиков на Ruby предпочитают использовать в условиях &&, || и !.

То же самое происходит с puts: puts true and false выводит true, потому что сначала выполняется puts true. Чтобы вывести результат логического оператора, заключи выражение в отдельные скобки: puts((true and false)) выводит false.

Словесные варианты обычно используются в ситуациях с управлением потоком выполнения, с которыми ты познакомишься позже. Пока что при написании условий используй символьные операторы (&&, ||, !), чтобы избежать неожиданностей.

challenge icon

Задание

Легко

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

a = true
b = false
c = true

Используйте логические операторы в виде слов (and, or, not), чтобы вычислить и вывести следующие выражения, каждое на отдельной строке:

  1. a and b
  2. a or b
  3. not b
  4. a and c
  5. b or c
  6. not a

При выводе заключайте каждое выражение в отдельные скобки, например puts((true and false)).

Каждый результат должен быть либо true, либо false.

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

# Переменные уже заданы
a = true
b = false
c = true

# TODO: Напишите свой код ниже
# Используйте логические операторы (and, or, not), чтобы вычислить и вывести каждое выражение
# Каждый результат следует выводить на отдельной строке
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby