Java — основные операторы
Java предоставляет богатый набор операторов для управления переменными. Мы можем разделить все операторы Java на следующие группы —
- Арифметические операторы
- Операторы отношения
- Побитовые операторы
- Логические операторы
- Операторы присваивания
- Разные операторы
Арифметические операторы
Арифметические операторы используются в математических выражениях так же, как и в алгебре. В следующей таблице перечислены арифметические операторы —
Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда −
Показать примеры
Оператор | Описание | Пример |
---|---|---|
+ (Дополнение) | Добавляет значения по обе стороны от оператора. | A + Б даст 30 |
- (Вычитание) | Вычитает правый операнд из левого операнда. | A – B даст -10 |
* (Умножение) | Умножает значения по обе стороны от оператора. | A * Б даст 200 |
/ (Отдел) | Делит левый операнд на правый операнд. | B / A даст 2 |
% (Модуль) | Делит левый операнд на правый операнд и возвращает остаток. | B % A даст 0 |
+++ (Приращение) | Увеличивает значение операнда на 1. | B++ дает 21 |
-- (Уменьшение) | Уменьшает значение операнда на 1. | B -- дает 19 |
Операторы отношения
Существуют следующие реляционные операторы, поддерживаемые языком Java.
Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда −
Показать примеры
Оператор | Описание | Пример |
---|---|---|
==(равно) | Проверяет, равны ли значения двух операндов, если да, то условие становится истинным. | (A ==B) неверно. |
!=(не равно) | Проверяет, равны ли значения двух операндов, если значения не равны, то условие становится истинным. | (A !=B) верно. |
> (больше) | Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным. | (A> B) неверно. |
<(меньше чем) | Проверяет, меньше ли значение левого операнда значения правого операнда, если да, то условие становится истинным. | (A |
>=(больше или равно) | Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным. | (A>=B) неверно. |
<=(меньше или равно) | Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным. | (A <=B) верно. |
Побитовые операторы
Java определяет несколько побитовых операторов, которые можно применять к целочисленным типам:long, int, short, char и byte.
Побитовый оператор работает с битами и выполняет побитовую операцию. Предположим, если a =60 и b =13; теперь в бинарном формате они будут такими -
а =0011 1100
б =0000 1101
------------------
а&б =0000 1100
а|б =0011 1101
а^б =0011 0001
~а =1100 0011
В следующей таблице перечислены побитовые операторы —
Предположим, что целочисленная переменная A содержит 60, а переменная B содержит 13, тогда −
Показать примеры
Оператор | Описание | Пример |
---|---|---|
&(побитовое и) | Двоичный оператор AND копирует бит в результат, если он присутствует в обоих операндах. | (A &B) даст 12, что равно 0000 1100 |
| (побитовое или) | Двоичный оператор ИЛИ копирует бит, если он существует в любом из операндов. | (A | B) даст 61, что равно 0011 1101 |
^ (побитовое XOR) | Двоичный оператор XOR копирует бит, если он установлен в одном операнде, но не в обоих. | (A ^ B) даст 49, что равно 0011 0001 |
~ (побитовое дополнение) | Двоичный оператор дополнения к единице является унарным и имеет эффект "переворачивания" битов. | (~A ) даст -61, что равно 1100 0011 в форме дополнения до 2 из-за двоичного числа со знаком. |
<<(сдвиг влево) | Двоичный оператор сдвига влево. Значение левого операнда сдвигается влево на количество битов, указанное правым операндом. | A <<2 даст 240, что равно 1111 0000 |
>> (правый сдвиг) | Двоичный оператор сдвига вправо. Значение левого операнда сдвигается вправо на количество битов, указанное правым операндом. | A>> 2 даст 15, что равно 1111 |
>>> (нулевой сдвиг вправо) | Сдвиг вправо, оператор заполнения нулями. Значение левого операнда сдвигается вправо на количество битов, указанное правым операндом, а сдвинутые значения заполняются нулями. | A>>>2 даст 15, что равно 0000 1111 |
Логические операторы
В следующей таблице перечислены логические операторы —
Предположим, что логические переменные A имеют значение true, а переменная B — значение false, тогда −
Показать примеры
Оператор | Описание | Пример |
---|---|---|
&&(логическое И) | Вызывается оператор логического И. Если оба операнда отличны от нуля, условие становится истинным. | (A &&B) равно false |
|| (логическое или) | Вызывается оператор логического ИЛИ. Если любой из двух операндов отличен от нуля, условие становится истинным. | (A || B) верно |
! (логично нет) | Вызывается оператор логического НЕ. Используйте, чтобы изменить логическое состояние своего операнда на противоположное. Если условие истинно, то логический оператор НЕ сделает ложным. | !(A &&B) верно |
Операторы присваивания
Ниже приведены операторы присваивания, поддерживаемые языком Java —
Показать примеры
Оператор | Описание | Пример |
---|---|---|
= | Простой оператор присваивания. Присваивает значения правых операндов левому операнду. | C =A + B присвоит значение A + B в C |
+= | Добавить оператор присваивания И. Он добавляет правый операнд к левому операнду и присваивает результат левому операнду. | C +=A эквивалентен C =C + А |
-= | Оператор присваивания и вычитания. Он вычитает правый операнд из левого операнда и присваивает результат левому операнду. | C -=A эквивалентно C =C – A |
*= | Умножение И оператор присваивания. Он умножает правый операнд на левый операнд и присваивает результат левому операнду. | C *=A эквивалентно C =C * А |
/= | Оператор деления и присваивания. Он делит левый операнд на правый операнд и присваивает результат левому операнду. | C /=A эквивалентно C =C / A |
%= | Модуль И оператор присваивания. Он принимает модуль, используя два операнда, и присваивает результат левому операнду. | C %=A эквивалентно C =C % A |
<<= | Сдвиг влево И оператор присваивания. | C <<=2 совпадает с C =C <<2 |
>>= | Сдвиг вправо И оператор присваивания. | C>>=2 совпадает с C =C>> 2 |
&= | Побитовый оператор присваивания И. | C &=2 совпадает с C =C &2 |
^= | побитовое исключающее ИЛИ и оператор присваивания. | C ^=2 совпадает с C =C ^ 2 |
|= | побитовое ИЛИ и оператор присваивания. | C |=2 совпадает с C =C | 2 |
Разные операторы
Есть несколько других операторов, поддерживаемых языком Java.
Условный оператор ( ? :)
Условный оператор также известен как тернарный оператор. . Этот оператор состоит из трех операндов и используется для вычисления логических выражений. Цель оператора — решить, какое значение следует присвоить переменной. Оператор записывается как -
variable x = (expression) ? value if true : value if false
Ниже приведен пример —
Пример
Живая демонстрацияpublic class Test { public static void main(String args[]) { int a, b; a = 10; b = (a == 1) ? 20: 30; System.out.println( "Value of b is : " + b ); b = (a == 10) ? 20: 30; System.out.println( "Value of b is : " + b ); } }
Это даст следующий результат —
Вывод
Value of b is : 30 Value of b is : 20
экземпляр оператора
Этот оператор используется только для переменных ссылки на объект. Оператор проверяет, относится ли объект к определенному типу (типу класса или типу интерфейса). Оператор instanceof записывается как -
( Object reference variable ) instanceof (class/interface type)
Если объект, на который ссылается переменная в левой части оператора, проходит проверку IS-A для типа класса/интерфейса в правой части, то результат будет истинным. Ниже приведен пример —
Пример
Живая демонстрацияpublic class Test { public static void main(String args[]) { String name = "James"; // following will return true since name is type of String boolean result = name instanceof String; System.out.println( result ); } }
Это даст следующий результат —
Вывод
true
Этот оператор по-прежнему будет возвращать значение true, если сравниваемый объект является присваиванием, совместимым с типом справа. Ниже приведен еще один пример —
Пример
Живая демонстрацияclass Vehicle {} public class Car extends Vehicle { public static void main(String args[]) { Vehicle a = new Car(); boolean result = a instanceof Car; System.out.println( result ); } }
Это даст следующий результат —
Вывод
true
Приоритет операторов Java
Приоритет оператора определяет группировку терминов в выражении. Это влияет на то, как оценивается выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения -
Например, х =7 +; 3 &аст; 2; здесь x присваивается 13, а не 20, потому что оператор * имеет более высокий приоритет, чем +, поэтому он сначала умножается на 3 * 2, а затем добавляется к 7.
Здесь операторы с наивысшим приоритетом отображаются в верхней части таблицы, а с наименьшим — в нижней. Внутри выражения операторы с более высоким приоритетом будут оцениваться первыми.
Категория | Оператор | Ассоциативность |
---|---|---|
Постфикс | выражение++ выражение-- | Слева направо |
Унарный | ++выражение --выражение +выражение --выражение ~ ! | Справа налево |
Множественный | * / % | Слева направо |
Добавка | <тд>+-тд>Слева направо | |
Сдвиг | <<>>>>> | Слева направо |
Относительный | <> <=>=instanceof | Слева направо |
Равенство | ==!= | Слева направо |
Побитовое И | <тд>&тд>Слева направо | |
Побитовое исключающее ИЛИ | <тд>^тд>Слева направо | |
Побитовое ИЛИ | <тд>|тд>Слева направо | |
Логическое И | <тд>&&тд>Слева направо | |
Логическое ИЛИ | <тд>||тд>Слева направо | |
Условное | <тд>?:тд>Справа налево | |
Назначение | =+=-=*=/=%=^=|=<<=>>=>>>= | Справа налево |
Что дальше?
В следующей главе будет рассказано об управлении циклом в программировании на Java. В этой главе будут описаны различные типы циклов, а также то, как эти циклы можно использовать при разработке программ на Java и для каких целей они используются.
java