Логические операторы. Часть 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-разработчиков предпочитают &&, || и ! для условий.
Словесные версии обычно зарезервированы для ситуаций управления потоком выполнения, с которыми вы столкнетесь позже. На данный момент придерживайтесь символьных операторов (&&, ||, !) при написании условий, чтобы избежать сюрпризов.
Задание
ЛегкоВам предоставлены следующие переменные:
a = true
b = false
c = trueИспользуйте логические операторы на основе слов (and, or, not), чтобы вычислить и вывести следующие выражения, каждое на отдельной строке:
a and ba or bnot ba and cb or cnot a
Каждый результат должен быть либо true, либо false.
Шпаргалка
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-разработчиков предпочитают &&, || и ! для условий, чтобы избежать сюрпризов. Текстовые версии обычно резервируются для ситуаций управления потоком выполнения (control flow).
Попробуйте сами
# Переменные предоставлены для вас
a = true
b = false
c = true
# TODO: Напишите свой код ниже
# Используйте логические операторы на основе слов (and, or, not) для вычисления и вывода каждого выражения
# Каждый результат должен быть выведен на отдельной строкеВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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Преобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь