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