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