Логические операторы (AND, OR)
Часть раздела Основы путешествия по R на Coddy — урок 17 из 78.
Операторы сравнения позволяют проверять одно условие, но что, если вам нужно проверить несколько условий одновременно? Логические операторы позволяют комбинировать условия и создавать более сложные выражения.
Оператор И (&&) возвращает TRUE только тогда, когда оба условия истинны:
age <- 25
has_license <- TRUE
can_drive <- age >= 18 && has_license # TRUEЕсли любое из условий ложно, все выражение становится ложным. Думайте об этом как о требовании выполнения всех условий.
Оператор ИЛИ (||) возвращает TRUE, когда хотя бы одно условие истинно:
is_weekend <- TRUE
is_holiday <- FALSE
day_off <- is_weekend || is_holiday # TRUEОператор OR возвращает false только тогда, когда оба условия ложны. Вот краткая справка:
| A | B | A && B | A || B |
|---|---|---|---|
| TRUE | TRUE | TRUE | TRUE |
| TRUE | FALSE | FALSE | TRUE |
| FALSE | TRUE | FALSE | TRUE |
| FALSE | FALSE | FALSE | FALSE |
Вы можете объединять несколько условий в одном выражении, используя эти операторы вместе, создавая мощные логические проверки для ваших программ.
Задание
ЛегкоОпределите возможность участия в различных мероприятиях, используя операторы И (&&) и ИЛИ (||).
Вам предоставлены следующие переменные:
age <- 17
has_permission <- TRUE
is_member <- FALSE
has_ticket <- TRUEИспользуйте логические операторы для создания следующих переменных:
- Создайте переменную с именем
can_enter_club, которая хранитTRUE, если человеку 18 лет или больше И он является участником - Создайте переменную с именем
can_watch_movie, которая хранитTRUE, если человеку 18 лет или больше ИЛИ у него есть разрешение - Создайте переменную с именем
can_attend_event, которая хранитTRUE, если у человека есть билет И он является участником - Создайте переменную с именем
gets_discount, которая хранитTRUE, если человек является участником ИЛИ ему меньше 18 лет (возраст меньше 18) - Создайте переменную с именем
vip_access, которая хранитTRUE, если человеку 18 лет или больше И он является участником И у него есть билет
Используйте функцию print() для отображения can_enter_club, can_watch_movie, can_attend_event, gets_discount и vip_access именно в таком порядке.
Шпаргалка
Логические операторы позволяют объединять несколько условий в R.
Оператор И (&&) возвращает TRUE только тогда, когда оба условия истинны:
age <- 25
has_license <- TRUE
can_drive <- age >= 18 && has_license # TRUEОператор ИЛИ (||) возвращает TRUE, когда хотя бы одно условие истинно:
is_weekend <- TRUE
is_holiday <- FALSE
day_off <- is_weekend || is_holiday # TRUEТаблица истинности для логических операторов:
| A | B | A && B | A || B |
|---|---|---|---|
| TRUE | TRUE | TRUE | TRUE |
| TRUE | FALSE | FALSE | TRUE |
| FALSE | TRUE | FALSE | TRUE |
| FALSE | FALSE | FALSE | FALSE |
Вы можете объединять несколько условий в одном выражении для создания сложных логических проверок.
Попробуйте сами
# Заданные переменные
age <- 17
has_permission <- TRUE
is_member <- FALSE
has_ticket <- TRUE
# TODO: Напишите ваш код ниже
# Создайте следующие переменные, используя логические операторы (&&, ||):
# 1. can_enter_club - TRUE, если age >= 18 И is_member
# 2. can_watch_movie - TRUE, если age >= 18 ИЛИ has_permission
# 3. can_attend_event - TRUE, если has_ticket И is_member
# 4. gets_discount - TRUE, если is_member ИЛИ age < 18
# 5. vip_access - TRUE, если age >= 18 И is_member И has_ticket
# Выведите результаты по порядку
print(can_enter_club)
print(can_watch_movie)
print(can_attend_event)
print(gets_discount)
print(vip_access)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками