Операторы в программировании | Уроки на Python Teach
Начиная изучать программирование любой человек сталкивается с множеством новых терминов, понимание которых просто необходимо для эффективного усвоения материалов. Сегодня мы поговорим о таком термине программирования как оператор.
Содержание
- Что такое операторы в программировании
- Типы операторов в программировании
- Оператор присваивания
- Арифметические операторы
- Логические операторы
- Логический оператор «И» (AND)
- Логический оператор «ИЛИ» (OR)
- Логический оператор НЕ (NOT)
- Операторы сравнения
- Составные операторы
Что такое операторы в программировании
Различных определений, что такое оператор довольно много. Некоторые из них содержат и другие термины, с которыми может быть ещё не знаком человек, начинающий изучать программировании. Поэтому мы дадим довольно простое определение этому термину, которое будет понятно каждому.
Оператор — это автономная команда, которая выполняет определенную операцию с информацией.
Грубо говоря, как дом строится из кирпичиков, так и программа строится из операторов.
Типы операторов в программировании
Операторы в программировании делятся на довольно большое количество типов. Сейчас поговорим об основных типах операторов в программировании.
Оператор присваивания
Оператор присваивания служит для того, чтобы присвоить какое-либо значение переменной. Если упростить, то мы говорим программе возьми вот эту информацию и положи её в ящик под названием «x».
На разных языках программирования оператор присваивания может выглядеть по разному, но чаще всего используется знак равенства.
На языке Python присваивание будет выглядеть так:
x = 365
Арифметические операторы
В языках программирования встроены арифметические операторы, которые позволяют нам совершать простейшие арифметические операции над числами, такие как сложение, вычитание, умножение и деление.
В зависимости от языка программирования, число арифметических операторов, которые по умолчанию может выполнять программа, отличается. Так же в зависимости от языка отличается и само обозначение операторов.
Приведем пример того, как могут выглядеть арифметические операторы.
Арифметический оператор | Значение |
---|---|
+ | сложение |
— | вычитание |
* | умножение |
/ | деление (деление без остатка) |
% | остаток от деления (5 % 2 = 1) |
** | возведение в степень |
Логические операторы
Зачастую в программах вам будет необходимо проверить какое-либо условие и принять решение, будет ли исполнятся какой-либо код дальше или нет. Для этих целей на всех языках программирования есть логические операторы. Логические операторы обрабатывают булевые значения и выдают результат — «ИСТИНА» (true) или «ЛОЖЬ» (false).
Булев тип — примитивный тип данных в информатике, принимающий два возможных значения, иногда называемых истиной (true) и ложью (false).
В подавляющем большинстве языков программирования есть хотя бы 3 логических оператора: И, ИЛИ, НЕ. В разных языках используется разный синтаксис, так оператор И может выглядеть как «and» или «&&», а оператор ИЛИ как «or» или «||».
Логический оператор «И» (AND)
Логический оператор «И» (AND) сравнивает два булевых типа и даёт ответ. Из всех возможных комбинаций ответ «истина» возможен только в случае когда оператор «И» (AND) используется для двух истинных значений.
Значение 1 | Значение 2 | Значение 1 И (AND) Значение 2 |
---|---|---|
ИСТИНА | ИСТИНА | ИСТИНА |
ИСТИНА | ЛОЖЬ | ЛОЖЬ |
ЛОЖЬ | ИСТИНА | ЛОЖЬ |
ЛОЖЬ | ЛОЖЬ | ЛОЖЬ |
Логический оператор «И» (AND) используется в тех случаях когда, вам необходимо сравнить несколько значений и принять решения о выполнении дальнейшего кода только в том случае, если все значения — «ИСТИНА».
Логический оператор «ИЛИ» (OR)
Логический оператор «ИЛИ» (OR) сравнивает два булевых типа и даёт ответ. Из всех возможных комбинаций ответ «ложь» возможен только в случае когда оператор «ИЛИ» (OR) используется для двух ложных значений.
Значение 1 | Значение 2 | Значение 1 ИЛИ (OR) Значение 2 |
---|---|---|
ИСТИНА | ИСТИНА | ИСТИНА |
ИСТИНА | ЛОЖЬ | ИСТИНА |
ЛОЖЬ | ИСТИНА | ИСТИНА |
ЛОЖЬ | ЛОЖЬ | ЛОЖЬ |
Логический оператор «И» (AND) используется в тех случаях когда, вам необходимо сравнить несколько значений и принять решения о выполнении дальнейшего кода в том случае, когда хотя бы одно значение — «ИСТИНА».
Логический оператор НЕ (NOT)
Логический оператор «НЕ» (NOT) известен также как «инверсия«. Этот оператор принимает булево значение и меняет его на противоположное.
Значение 1 | НЕ (NOT) Значение 1 |
---|---|
ИСТИНА | ЛОЖЬ |
ЛОЖЬ | ИСТИНА |
На первый взгляд новичкам в программировании логический оператор инверсия может показаться лишним. Но это не так, как только вы немного углубитесь в изучении программирования, вы поймете на сколько это полезный оператор.
Операторы сравнения
Довольно часто программистам приходится сталкиваться с сравнением различных значений. Для этого они используют операторы сравнения, которые сравнивают две величины и на выходе дают булево значение сравнения — «ИСТИНА» или «ЛОЖЬ». Чаще всего используются следующие операторы сравнения.
Оператор сравнения | Значение |
---|---|
> | больше |
< | меньше |
>= | больше или равно |
<= | меньше или равно |
== | равно |
!= | не равно |
В различных языках программирования обозначение данных операторов может различаться.
Составные операторы
Помимо описанных выше операторов, зачастую в языках программирования существуют составные операторы, которые могут включать в себя несколько типов операторов. Например составные операторы присвоения, которые помогают делать код более лаконичным.
Приведем для примера несколько составных операторов присвоения. В каждом из примеров первая строчка кода аналогична по функционалу второй.
x = x + 365 x += 365 x = x - 365 x -= 365
Продолжая изучать программирование вы вскоре познакомитесь и с различными другими полезными операторами, которые будете использовать при работе. Вы можете продолжить своё обучение ознакомлением со следующими материалами:
- условные операторы в программировании
По тегу «Оператор (программирование)» найдено постов: 26
Добавлено 25 июля 2021 в 03:45
13.x – Резюме к главе 13 и небольшой тест
В данной главе мы исследовали темы, связанные с перегрузкой операторов, а также перегруженные преобразования типов и темы, связанные с конструктором копирования. Краткое резюме Перегрузка операторов – это вариант перегрузки функций, который…
Добавлено 25 июля 2021 в 00:05
13.17 – Перегрузка операторов и шаблоны функций
В уроке «8.14 – Создание экземпляра шаблона функции» мы обсудили, как компилятор использует шаблоны функций для создания экземпляров функций, которые затем компилируются. Мы также отметили, что эти функции могут не компилироваться, если…
Добавлено 21 июля 2021 в 18:04
13.15 – Перегрузка оператора присваивания
Оператор присваивания (operator=) используется для копирования значений из одного объекта в другой, уже существующий объект. Присваивание и конструктор копирования Назначение конструктора копирования и оператора присваивания почти эквивалентны –…
Добавлено 19 июля 2021 в 17:29
13.11 – Перегрузка операторов преобразования типов данных
В уроке «8.5 – Явное преобразование (приведение) типов данных и static_cast» вы узнали, что C++ позволяет преобразовывать один тип данных в другой.
Добавлено 19 июля 2021 в 14:06
13.10 – Перегрузка оператора круглые скобки ()
Все перегруженные операторы, которые мы рассмотрели на данный момент, позволяют вам определять тип параметров оператора, но не количество параметров (которое фиксируется в зависимости от типа оператора). Например, operator== всегда принимает два параметра,…
Добавлено 18 июля 2021 в 21:56
13.9 – Перегрузка оператора индекса
При работе с массивами мы обычно используем оператор индекса ([]) для указания на определенные элементы массива: myArray[0] = 7; // помещаем значение 7 в первый элемент массива Однако рассмотрим следующий класс IntList, у которого есть переменная-член,…
Добавлено 18 июля 2021 в 18:17
13.8 – Перегрузка операторов инкремента и декремента
Перегрузка операторов инкремента (++) и декремента (—) довольно проста, за одним небольшим исключением. Фактически существует две версии операторов инкремента и декремента: префиксные инкремент и декремент (например, ++x; —y;) и постфиксные инкремент…
Добавлено 18 июля 2021 в 16:41
13.7 – Перегрузка операторов сравнения
Перегрузка операторов сравнения сравнительно проста, поскольку она следует тем же шаблонам, что мы видели при перегрузке других операторов. Поскольку все операторы сравнения являются бинарными операторами, которые не изменяют свои левые операнды, мы…
Добавлено 18 июля 2021 в 15:44
13.6 – Перегрузка унарных операторов +, — и !
Перегрузка унарных операторов В отличие от операторов, которые мы рассматривали до сих пор, операторы положительный (+), отрицательный (-) и логическое НЕ (!) являются унарными операторами, что означает, что они работают только с одним операндом. Поскольку…
Добавлено 18 июля 2021 в 14:17
13.5 – Перегрузка операторов, используя функции-члены
В уроке «13. 2 – Перегрузка арифметических операторов, используя дружественные функции» вы узнали, как перегрузить арифметические операторы с помощью дружественных функций. Вы также узнали, что можете перегружать операторы как обычные…
Добавлено 18 июля 2021 в 12:18
13.4 – Перегрузка операторов ввода/вывода
Для классов, которые имеют несколько переменных-членов, вывод каждой переменной на экран по отдельности может стать утомительным занятием. Например, рассмотрим следующий класс: class Point { private: double m_x{}; double m_y{}; double…
Добавлено 18 июля 2021 в 10:31
13.3 – Перегрузка операторов, используя обычные функции
В предыдущем уроке мы перегружали operator+ как дружественную функцию: #include <iostream> class Cents { private: int m_cents{}; public: Cents(int cents) : m_cents{ cents } {} // складываем Cents + Cents с помощью. ..
Добавлено 18 июля 2021 в 09:47
13.2 – Перегрузка арифметических операторов, используя дружественные функции
Одни из наиболее часто используемых операторов в C++ – это арифметические операторы, то есть оператор плюса (+), оператор минуса (-), оператор умножения (*) и оператор деления (/). Обратите внимание, что все арифметические операторы являются бинарными,…
Добавлено 18 июля 2021 в 01:44
13.1 – Введение в перегрузку операторов
В уроке «8.9 – Введение в перегрузку функций» вы узнали о перегрузке функций, которая предоставляет механизм для создания и разрешения вызовов для нескольких функций с одним и тем же именем, если каждая из этих функций имеет уникальный…
Добавлено 9 мая 2021 в 13:07
O.3 – Битовые манипуляции с побитовыми операторами и битовыми масками
В предыдущем уроке о побитовых операторах (O.2 – Побитовые операторы) мы обсудили, как различные побитовые операторы применяют логические операции к каждому биту в операндах. Теперь, когда мы понимаем, как они работают, давайте посмотрим, как они…
Добавлено 8 мая 2021 в 23:55
O.2 – Побитовые операторы
Побитовые операторы Для битовых манипуляций C++ предоставляет 6 операторов, часто называемых побитовыми операторами: Побитовые операторы Оператор Обозначение Пример использования Операция Сдвиг влево << x…
Добавлено 8 мая 2021 в 19:25
5.x – Резюме к главе 5 и небольшой тест
Краткое резюме Всегда используйте круглые скобки, чтобы устранить неоднозначность приоритета операторов, если есть какие-либо вопросы или возможность путаницы. Все арифметические операторы работают так же, как и в обычной математике. Оператор остатка…
Добавлено 8 мая 2021 в 18:37
5.7 – Логические операторы
Хотя операторы отношения (сравнения) могут использоваться для проверки того, является ли конкретное условие истинным или ложным, они могут проверять только одно условие за раз. Но часто нам нужно знать, выполняются ли одновременно несколько условий. Например,…
Добавлено 8 мая 2021 в 14:16
5.6 – Операторы отношения и сравнение чисел с плавающей запятой
Операторы отношения – это операторы, позволяющие сравнивать два значения. Существует 6 операторов отношения: Операторы отношения Оператор Обозначение Пример использования Операция Больше > x…
Добавлено 8 мая 2021 в 11:25
5.5 – Оператор запятая и условный оператор
Оператор запятая Оператор запятая Оператор Обозначение Пример использования Операция Запятая , x, y Вычисляет x, затем y, возвращает значение y Оператор запятая (,) позволяет вычислять…
Добавлено 3 мая 2021 в 18:56
5. 4 – Операторы инкремента/декремента и их побочные эффекты
Инкремент и декремент переменных Инкремент (увеличение на 1) и декремент (уменьшение на 1) переменной настолько распространены, что имеют свои собственные операторы. Операторы инкремента и декремента Оператор Обозначение Пример…
Добавлено 3 мая 2021 в 16:11
5.3 – Остаток от деления и возведение в степень
Оператор остатка от деления Оператор остатка от деления – это оператор, который возвращает остаток после целочисленного деления. Например, 7/4 = 1 и остаток 3. Следовательно, 7 % 4 = 3. В качестве другого примера, 25/7 = 3 и остаток 4, таким…
Добавлено 3 мая 2021 в 14:55
5.2 – Арифметические операторы
Унарные арифметические операторы В C++ есть два унарных арифметических оператора, плюс (+) и минус (-). Напоминаем, что унарные операторы – это операторы, которые принимают только один операнд. Унарные арифметические операторы Оператор Обозначение Пример…
Добавлено 3 мая 2021 в 13:50
5.1 – Приоритет и ассоциативность операторов
Введение в главу Данная глава основывается на концепциях урока «1.9 – Знакомство с литералами и операторами». Далее следует его краткий обзор. В математике операция – это математическое вычисление, включающее ноль или более…
Добавлено 9 апреля 2021 в 11:30
1.9 – Знакомство с литералами и операторами
Литералы Рассмотрим следующие два выражения: std::cout << «Hello world!»; int x{ 5 }; Что такое «Hello world!» и 5? Это литералы. Литерал (также известный как буквальная константа) – это фиксированное значение, которое…
Добавлено 2 ноября 2020 в 01:30
Перегрузка операторов / FAQ C++
Что там с перегрузкой операторов? Каковы преимущества перегрузки операторов? Можно увидеть примеры перегрузки операторов? Но перегрузка операторов делает мой класс уродливым; разве она не должна сделать мой код более понятным? Какие операторы. ..
Учебники и примечания по основам работы с операторами | Основы программирования
Операторы — это символы, указывающие компилятору выполнять определенные математические или логические операции. В этом уроке мы постараемся охватить наиболее часто используемые операторы в программировании.
Сначала разделим их на категории:
1. Арифметические
2. Реляционные
3. Побитовые
4. Логические
5. Присваивающие
6. Инкрементные
7. Прочие
5 Арифметические
560004 :
Символ Эксплуатация Использование Пояснение + дополнение х+у Добавляет значения по обе стороны от оператора — вычитание х-у Вычитает правый операнд из левого операнда * умножение х*у Умножает значения по обе стороны от оператора / отделение х/у Делит левый операнд на правый операнд % модуль х%у Делит левый операнд на правый операнд и возвращает остаток
Реляционные операторы : Эти операторы используются для сравнения. Они возвращают либо true , либо false в зависимости от результата сравнения. Оператор «==» не следует путать с «=». Операторы отношения следующие:
Symbol Эксплуатация Использование Пояснение == равно х == у Проверяет, совпадают ли значения двух операндов.
равно или нет, если да, то условие становится истинным. != не равно х != у Проверяет, совпадают ли значения двух операндов.
равны или нет, если значения не равны, то условие становится истинным. > больше х > у Проверяет, является ли значение левого операнда
больше, чем значение правого операнда, если да, то условие становится истинным < меньше х < у Проверяет, меньше ли значение левого операнда
чем значение правого операнда, если да, то условие становится истинным. >= больше или равно х >= у Проверяет, является ли значение левого операнда
больше или равно значению правого операнда, если да, то условие становится истинным. <= меньше или равно х <= у Проверяет, меньше ли значение левого операнда
больше или равно значению правого операнда, если да, то условие становится истинным.
Побитовые операторы : Эти операторы очень полезны, и у нас есть некоторые приемы, основанные на этих операторах. Эти операторы преобразуют заданные целые числа в двоичные, а затем выполняют требуемую операцию и возвращают результат в десятичном представлении.
Символ Эксплуатация Использование Пояснение и побитовое И х и у Устанавливает бит результата, если он установлен в обоих операндах. y$$ 9$$y$$ = 0011 0001= 49
~$$x$$ = 1101 0101
$$x<<2$$ = 1010 1000= 168. Обратите внимание, биты сдвинуты на 2 единицы влево, а новые биты заполнены 0s.
$$x>>2$$ = 0000 1010=10$$. Обратите внимание, биты сдвинуты на 2 единицы вправо, а новые биты заполнены нулями.
Для получения дополнительной информации о том, как работают эти операторы, см.: Управление битами
Логические операторы : Эти операторы принимают логические значения в качестве входных данных и возвращают логические значения в качестве выходных данных.
Примечание. В C, C++ любое ненулевое число считается истинным, а 0 — ложным, но это не относится к Java.
Символ Эксплуатация Использование Пояснение && логическое И х && у Возвращает истину, если и x, и y верны, иначе возвращает ложь. || логическое ИЛИ х || г Возвращает false, если ни x, ни y не являются истинными, иначе возвращает true ! логический НЕ ! х Унарный оператор. Возвращает true, если x равно false, иначе возвращает false.
Операторы присвоения :
Символ Эксплуатация Использование Эквивалент Пояснение = присвоение х = у Присваивает значение из правого операнда(ов) левой стороне
операнд. += добавить и присвоить х += у х = х+у Добавляет правый операнд к левому операнду и присваивает результат левому операнду. -= вычитание и присваивание х -= у х= х-у Вычитает правый операнд из левого операнда и присваивает результат левому операнду. *= умножить и присвоить х *= у х= х*у Умножает правый операнд на левый операнд и присваивает результат левому операнду. /= деление и присваивание х /= у х= х/у Делит левый операнд на правый операнд и присваивает результат левому операнду. %= модуль и назначение х%=у х= х%у Принимает модуль, используя два операнда, и присваивает результат левому операнду. <<= сдвиг влево и присвоение х<<=у х= х<< у Сдвигает значение x на y битов влево и сохраняет результат обратно в x. >>= сдвиг вправо и присвоение х>>=у х= х>>у Сдвигает значение x на y битов вправо и сохраняет результат обратно в x. &= побитовое И и присваивание х&=у 9y и сохраняет результат обратно в x.
Операторы увеличения/уменьшения : Это унарных оператора. Унарные операторы — это операторы, которые требуют только одного операнда.
Символ Эксплуатация Использование Пояснение ++ постинкремент х++ Увеличение x на 1 после использования его значения — Постдекремент х— Уменьшить x на 1 после использования его значения ++ Преинкремент ++х Увеличить x на 1 перед использованием его значения — Предекремент —x Уменьшить x на 1 перед использованием его значения
Примеры :
Пусть x=10
тогда, после y=x++ ; y=10 и x=11, потому что x присваивается y до его приращения.
, но если бы мы написали y=++x ; y=11 и x=11, потому что x присваивается y после его приращения.
То же относится и к операторам декремента.
Разные операторы :
Условный оператор : Аналогичен if-else :
x = (условие) ? а : б
Если условие истинно, то a присваивается x, иначе b присваивается x. Это тернарный оператор, поскольку он использует условие a и b, то есть три операнда (условие также рассматривается как логический операнд).
Приоритет и ассоциативность операторов :
Правила приоритета : Правила приоритета определяют, какой оператор оценивается первым, когда два оператора с разным приоритетом находятся рядом в выражении.
Например: $$x= a+++b$$
Это выражение можно рассматривать как приращение постфикса к a и добавление к b или приращение префикса к b и прибавление к a. Такие проблемы решаются с помощью правил приоритета.
Правила ассоциативности : правила ассоциативности определяют, какой оператор вычисляется первым, когда два оператора с одинаковым приоритетом находятся рядом в выражении.
Например: $$a*b /c$$
Приоритет оператора : В следующей таблице описывается порядок приоритета операторов, упомянутых выше. Здесь операторы с наивысшим приоритетом отображаются вверху, а с наименьшим — внизу. В любом заданном выражении операторы с более высоким приоритетом будут оцениваться первыми.
LR=Слева направо
RL=Справа налево
Категория Ассоциативность Оператор Постфикс ЛР ++ — Одинарный РЛ + — ! ~++ — Мультипликатив ЛР * / % Добавка 9= |=
Предоставил: Шубхам Гупта
Логические операторы — основы программирования
Кеннет Лерой Басби и Дэйв Брауншвейг
Обзор
Логический оператор — это символ или слово, используемые для соединения двух или более выражений таким образом, что значение полученного составного выражения зависит только от значения исходных выражений и от значения оператора. [1] Общие логические операторы включают И, ИЛИ и НЕ.
Обсуждение
В большинстве языков выражения, которые возвращают значения логического типа данных, делятся на две группы. Одна группа использует реляционные операторы в своих выражениях, а другая группа использует логические операторы в своих выражениях.
Логические операторы часто используются для создания тестового выражения, управляющего ходом программы. Этот тип выражения также известен как логическое выражение, поскольку при оценке они создают логический ответ или значение. Есть три общих логических оператора, которые дают логическое значение, манипулируя другими логическими операндами. Символы и/или имена операторов различаются в зависимости от языка программирования:
Язык И ИЛИ НЕ С++ &&
||
!
С# &&
||
!
Ява &&
||
!
JavaScript &&
||
!
Питон и
или
не
Свифт &&
||
!
Вертикальные тире или окантовка находятся на той же клавише, что и обратная косая черта \. Вы используете клавишу SHIFT, чтобы получить его. На большинстве клавиатур она находится над клавишей Enter. На некоторых клавиатурах это может быть сплошная вертикальная линия, а на некоторых печатных шрифтах — сплошная вертикальная линия.
В большинстве языков существуют строгие правила формирования правильных логических выражений. Пример:
6 > 4 && 2 <= 14
6 > 4 и 2 <= 14
Это выражение содержит два оператора отношения и один логический оператор. Используя правила приоритета операторов, два оператора «реляционного сравнения» будут выполняться перед оператором «логическое и». Таким образом:
верно && верно
Правда и правда
Окончательная оценка выражения: true.
Мы можем сказать это по-английски так: Верно, что шесть больше четырех и что два меньше или равно четырнадцати.
При формировании логических выражений программисты часто используют круглые скобки (даже если они технически не нужны), чтобы сделать логику выражения более понятной. Рассмотрим приведенное выше сложное логическое выражение, переписанное:
. (6 > 4) && (2 <= 14)
(6 > 4) и (2 <= 14)
Большинство языков программирования распознают любое ненулевое значение как истинное. Это делает следующее выражение допустимым:
6 > 4 && 8
6 > 4 и 8
Но помните порядок действий. В английском это шесть больше, чем четыре, а восемь не ноль. Таким образом,
верно && верно
Правда и правда
Чтобы сравнить 6 с 4 и 8, вместо этого нужно записать как:
6 > 4 && 6 > 8
6 > 4 и 6 > 8
Это будет оцениваться как false как:
истина && ложь
Правда и Ложь
Таблицы истинности
Обычный способ показать логические отношения — таблицы истинности.
Логический и (&&) х г х и у ложный ложь ложь ложный правда ложь правда ложь ложь правда правда правда
Логический или (||) х г х или у ложный ложь ложь ложный правда правда правда ложь правда правда правда правда
Логическое нет (!) х нет х ложный правда правда ложь
Примеры
Я называю это примером того, почему я ненавижу «и» и люблю «или».
Каждый день, когда я приходил домой из школы с понедельника по четверг; Я спрашивал маму: «Можно я выйду на улицу и поиграю?» Она отвечала: «Если в твоей комнате чисто и домашняя работа сделана, ты можешь выйти на улицу и поиграть». Я научился ненавидеть слово «и». Я мог успеть выполнить одно из заданий и успеть поиграть до обеда, но и то, и другое… ну, я ненавидел «и».
В пятницу моя мама заняла более спокойную позицию, и когда ее спросили, могу ли я выйти на улицу и поиграть, она ответила: «Если твоя комната чистая или твоя домашняя работа сделана, ты можешь выйти на улицу и поиграть». Я научился быстро убирать свою комнату в пятницу днем. Ну, само собой разумеется, я любил «или».
В качестве следующего примера просто представьте себе подростка, разговаривающего со своей матерью. Во время разговора мама говорит: «Ведь твой папа разумный!» Подросток говорит: «Разумно. (короткая пауза) Нет».
Может быть, профессора колледжей подумают, что все их студенты готовятся к экзамену.
Оставить комментарий
Реляционные операторы : Эти операторы используются для сравнения. Они возвращают либо true , либо false в зависимости от результата сравнения. Оператор «==» не следует путать с «=». Операторы отношения следующие:
Побитовые операторы : Эти операторы очень полезны, и у нас есть некоторые приемы, основанные на этих операторах. Эти операторы преобразуют заданные целые числа в двоичные, а затем выполняют требуемую операцию и возвращают результат в десятичном представлении.
~$$x$$ = 1101 0101
$$x<<2$$ = 1010 1000= 168. Обратите внимание, биты сдвинуты на 2 единицы влево, а новые биты заполнены 0s.
$$x>>2$$ = 0000 1010=10$$. Обратите внимание, биты сдвинуты на 2 единицы вправо, а новые биты заполнены нулями.
Для получения дополнительной информации о том, как работают эти операторы, см.: Управление битами
Логические операторы : Эти операторы принимают логические значения в качестве входных данных и возвращают логические значения в качестве выходных данных.
Примечание. В C, C++ любое ненулевое число считается истинным, а 0 — ложным, но это не относится к Java.
Символ | Эксплуатация | Использование | Пояснение |
&& | логическое И | х && у | Возвращает истину, если и x, и y верны, иначе возвращает ложь. |
|| | логическое ИЛИ | х || г | Возвращает false, если ни x, ни y не являются истинными, иначе возвращает true |
! | логический НЕ | ! х | Унарный оператор. Возвращает true, если x равно false, иначе возвращает false. |
Операторы присвоения :
Символ | Эксплуатация | Использование | Эквивалент | Пояснение |
= | присвоение | х = у | Присваивает значение из правого операнда(ов) левой стороне операнд. | |
+= | добавить и присвоить | х += у | х = х+у | Добавляет правый операнд к левому операнду и присваивает результат левому операнду. |
-= | вычитание и присваивание | х -= у | х= х-у | Вычитает правый операнд из левого операнда и присваивает результат левому операнду. |
*= | умножить и присвоить | х *= у | х= х*у | Умножает правый операнд на левый операнд и присваивает результат левому операнду. |
/= | деление и присваивание | х /= у | х= х/у | Делит левый операнд на правый операнд и присваивает результат левому операнду. |
%= | модуль и назначение | х%=у | х= х%у | Принимает модуль, используя два операнда, и присваивает результат левому операнду. |
<<= | сдвиг влево и присвоение | х<<=у | х= х<< у | Сдвигает значение x на y битов влево и сохраняет результат обратно в x. |
>>= | сдвиг вправо и присвоение | х>>=у | х= х>>у | Сдвигает значение x на y битов вправо и сохраняет результат обратно в x. |
&= | побитовое И и присваивание | х&=у | 9y и сохраняет результат обратно в x.
Операторы увеличения/уменьшения : Это унарных оператора. Унарные операторы — это операторы, которые требуют только одного операнда.
Символ | Эксплуатация | Использование | Пояснение |
++ | постинкремент | х++ | Увеличение x на 1 после использования его значения |
— | Постдекремент | х— | Уменьшить x на 1 после использования его значения |
++ | Преинкремент | ++х | Увеличить x на 1 перед использованием его значения |
— | Предекремент | —x | Уменьшить x на 1 перед использованием его значения |
Примеры :
Пусть x=10
тогда, после y=x++ ; y=10 и x=11, потому что x присваивается y до его приращения.
, но если бы мы написали y=++x ; y=11 и x=11, потому что x присваивается y после его приращения.
То же относится и к операторам декремента.
Разные операторы :
Условный оператор : Аналогичен if-else :
x = (условие) ? а : б
Если условие истинно, то a присваивается x, иначе b присваивается x. Это тернарный оператор, поскольку он использует условие a и b, то есть три операнда (условие также рассматривается как логический операнд).
Приоритет и ассоциативность операторов :
Правила приоритета : Правила приоритета определяют, какой оператор оценивается первым, когда два оператора с разным приоритетом находятся рядом в выражении.
Например: $$x= a+++b$$
Это выражение можно рассматривать как приращение постфикса к a и добавление к b или приращение префикса к b и прибавление к a. Такие проблемы решаются с помощью правил приоритета.
Правила ассоциативности : правила ассоциативности определяют, какой оператор вычисляется первым, когда два оператора с одинаковым приоритетом находятся рядом в выражении.
Например: $$a*b /c$$
Приоритет оператора : В следующей таблице описывается порядок приоритета операторов, упомянутых выше. Здесь операторы с наивысшим приоритетом отображаются вверху, а с наименьшим — внизу. В любом заданном выражении операторы с более высоким приоритетом будут оцениваться первыми.
LR=Слева направо
RL=Справа налево
Категория | Ассоциативность | Оператор |
Постфикс | ЛР | ++ — |
Одинарный | РЛ | + — ! ~++ — |
Мультипликатив | ЛР | * / % |
Добавка | 9= |=
Предоставил: Шубхам Гупта
Логические операторы — основы программирования
Кеннет Лерой Басби и Дэйв Брауншвейг
Обзор
Логический оператор — это символ или слово, используемые для соединения двух или более выражений таким образом, что значение полученного составного выражения зависит только от значения исходных выражений и от значения оператора. [1] Общие логические операторы включают И, ИЛИ и НЕ.
Обсуждение
В большинстве языков выражения, которые возвращают значения логического типа данных, делятся на две группы. Одна группа использует реляционные операторы в своих выражениях, а другая группа использует логические операторы в своих выражениях.
Логические операторы часто используются для создания тестового выражения, управляющего ходом программы. Этот тип выражения также известен как логическое выражение, поскольку при оценке они создают логический ответ или значение. Есть три общих логических оператора, которые дают логическое значение, манипулируя другими логическими операндами. Символы и/или имена операторов различаются в зависимости от языка программирования:
Язык | И | ИЛИ | НЕ |
---|---|---|---|
С++ | && | || | ! |
С# | && | || | ! |
Ява | && | || | ! |
JavaScript | && | || | ! |
Питон | и | или | не |
Свифт | && | || | ! |
Вертикальные тире или окантовка находятся на той же клавише, что и обратная косая черта \. Вы используете клавишу SHIFT, чтобы получить его. На большинстве клавиатур она находится над клавишей Enter. На некоторых клавиатурах это может быть сплошная вертикальная линия, а на некоторых печатных шрифтах — сплошная вертикальная линия.
В большинстве языков существуют строгие правила формирования правильных логических выражений. Пример:
6 > 4 && 2 <= 14
6 > 4 и 2 <= 14
Это выражение содержит два оператора отношения и один логический оператор. Используя правила приоритета операторов, два оператора «реляционного сравнения» будут выполняться перед оператором «логическое и». Таким образом:
верно && верно
Правда и правда
Окончательная оценка выражения: true.
Мы можем сказать это по-английски так: Верно, что шесть больше четырех и что два меньше или равно четырнадцати.
При формировании логических выражений программисты часто используют круглые скобки (даже если они технически не нужны), чтобы сделать логику выражения более понятной. Рассмотрим приведенное выше сложное логическое выражение, переписанное:
. (6 > 4) && (2 <= 14)
(6 > 4) и (2 <= 14)
Большинство языков программирования распознают любое ненулевое значение как истинное. Это делает следующее выражение допустимым:
6 > 4 && 8
6 > 4 и 8
Но помните порядок действий. В английском это шесть больше, чем четыре, а восемь не ноль. Таким образом,
верно && верно
Правда и правда
Чтобы сравнить 6 с 4 и 8, вместо этого нужно записать как:
6 > 4 && 6 > 8
6 > 4 и 6 > 8
Это будет оцениваться как false как:
истина && ложь
Правда и Ложь
Таблицы истинности
Обычный способ показать логические отношения — таблицы истинности.
х | г | х и у |
ложный | ложь | ложь |
ложный | правда | ложь |
правда | ложь | ложь |
правда | правда | правда |
х | г | х или у |
ложный | ложь | ложь |
ложный | правда | правда |
правда | ложь | правда |
правда | правда | правда |
х | нет х |
ложный | правда |
правда | ложь |
Примеры
Я называю это примером того, почему я ненавижу «и» и люблю «или».
Каждый день, когда я приходил домой из школы с понедельника по четверг; Я спрашивал маму: «Можно я выйду на улицу и поиграю?» Она отвечала: «Если в твоей комнате чисто и домашняя работа сделана, ты можешь выйти на улицу и поиграть». Я научился ненавидеть слово «и». Я мог успеть выполнить одно из заданий и успеть поиграть до обеда, но и то, и другое… ну, я ненавидел «и».
В пятницу моя мама заняла более спокойную позицию, и когда ее спросили, могу ли я выйти на улицу и поиграть, она ответила: «Если твоя комната чистая или твоя домашняя работа сделана, ты можешь выйти на улицу и поиграть». Я научился быстро убирать свою комнату в пятницу днем. Ну, само собой разумеется, я любил «или».
В качестве следующего примера просто представьте себе подростка, разговаривающего со своей матерью. Во время разговора мама говорит: «Ведь твой папа разумный!» Подросток говорит: «Разумно. (короткая пауза) Нет».
Может быть, профессора колледжей подумают, что все их студенты готовятся к экзамену.