10. Java – Основные операторы языка
Java предоставляет богатый набор операторов для управления переменными. Все операторы Java можно разделить на следующие группы:
- арифметические операторы;
- операторы сравнения;
- побитовые операторы;
- логические операторы;
- операторы присваивания;
- прочие операторы.
Арифметические операторы
Арифметические операторы – используются в математических выражениях таким же образом, как они используются в алгебре. Предположим, целая переменная A равна 10, а переменная B равна 20. В следующей таблице перечислены арифметические операторы в Java:
Оператор | Описание | Пример |
+ | Складывает значения по обе стороны от оператора | A + B даст 30 |
— | Вычитает правый операнд из левого операнда | A — B даст -10 |
* | Умножает значения по обе стороны от оператора | A * B даст 200 |
/ | Оператор деления делит левый операнд на правый операнд | B / A даст 2 |
% | Делит левый операнд на правый операнд и возвращает остаток | B % A даст 0 |
++ | Инкремент — увеличивает значение операнда на 1 | B++ даст 21 |
— | Декремент — уменьшает значение операнда на 1 | B— даст 19 |
Пример
Следующий простой пример показывает программно арифметические операторы. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:
public class Test < public static void main(String args[]) < int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("b / a = " + (b / a)); System.out.println("b % a = " + (b % a)); System.out.println("c % a = " + (c % a)); System.out.println("a++ = " + (a++)); System.out.println("b-- = " + (a--)); // Проверьте разницу в d++ и ++d System.out.println("d++ = " + (d++)); System.out.println("++d dos">a + b = 30 a - b = -10 a * b = 200 b / a = 2 b % a = 0 c % a = 5 a++ = 10 b-- = 11 d++ = 25 ++d = 27
Операторы сравнения
Есть следующие операторы сравнения, поддерживаемые на языке Java. Предположим, переменная A равна 10, а переменная B равна 20. В следующей таблице перечислены реляционные операторы или операторы сравнения в Java:
Оператор | Описание | Пример |
== | Проверяет, равны или нет значения двух операндов, если да, то условие становится истинным | (A == B) – не верны |
!= | Проверяет, равны или нет значения двух операндов, если значения не равны, то условие становится истинным | (A != B) – значение истинна |
> | Проверяет, является ли значение левого операнда больше, чем значение правого операнда, если да, то условие становится истинным | (A > B) – не верны |
= | Проверяет, является ли значение левого операнда больше или равно значению правого операнда, если да, то условие становится истинным | (A >= B) – значение не верны |
> (сдвиг вправо) | Бинарный оператор сдвига вправо. Значение правых операндов перемещается вправо на количество бит, заданных левых операндом. | A >> 2 даст 15, который является 1111 |
>>> (нулевой сдвиг вправо) | Нулевой оператор сдвига вправо. Значение левых операндов перемещается вправо на количество бит, заданных правым операндом, а сдвинутые значения заполняются нулями. | A >>> 2 даст 15, который является 0000 1111 |
Пример
Следующий простой пример показывает, программно побитовые операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:
public class Test < public static void main(String args[]) < int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ System.out.println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ System.out.println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ System.out.println("a ^ b = " + c ); c = ~a; /*-61 = 1100 0011 */ System.out.println("~a a > 2 a >>> 2 html">a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a > 15 a >>> 15
Логические операторы
Предположим, логическая переменная A имеет значение true, а переменная B хранит false. В следующей таблице перечислены логические операторы в Java:
Оператор | Описание | Пример |
&& | Называется логический оператор «И». Если оба операнда являются не равны нулю, то условие становится истинным | (A && B) – значение false |
|| | Называется логический оператор «ИЛИ». Если любой из двух операндов не равен нулю, то условие становится истинным | (A || B) – значение true |
! | Называется логический оператор «НЕ». Использование меняет логическое состояние своего операнда. Если условие имеет значение true, то оператор логического «НЕ» будет делать false | !(A && B) – значение true |
Пример
Следующий простой пример показывает, программно логические операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:
public class Test < public static void main(String args[]) < boolean a = true; boolean b = false; System.out.println("a && b = " + (a&&b)); System.out.println("a || b = " + (a||b) ); System.out.println("!(a && b) dos">a && b = false a || b = true !(a && b) = true
Операторы присваивания
Существуют следующие операторы присваивания, поддерживаемые языком Java:
Оператор | Описание | Пример |
= | Простой оператор присваивания, присваивает значения из правой стороны операндов к левому операнду | C = A + B, присвоит значение A + B в C |
+= | Оператор присваивания «Добавления», он присваивает левому операнду значения правого | C += A, эквивалентно C = C + A |
-= | Оператор присваивания «Вычитания», он вычитает из правого операнда левый операнд | C -= A, эквивалентно C = C — A |
*= | Оператор присваивания «Умножение», он умножает правый операнд на левый операнд | C * = A эквивалентно C = C * A |
/= | Оператор присваивания «Деление», он делит левый операнд на правый операнд | C /= A эквивалентно C = C / A |
%= | Оператор присваивания «Модуль», он принимает модуль, с помощью двух операндов и присваивает его результат левому операнду | C %= A, эквивалентно C = C % A |
>= | Оператор присваивания «Сдвиг вправо» | C >>= 2, это как C = C >> 2 |
&= | Оператор присваивания побитового «И» («AND») | C &= 2, это как C = C & 2 |
^= | Оператор присваивания побитового исключающего «ИЛИ» («XOR») | C ^= 2, это как C = C ^ 2 |
|= | Оператор присваивания побитового «ИЛИ» («OR») | C |= 2, это как C = C | 2 |
Пример
Следующий простой пример показывает, программно логические операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:
public class Test < public static void main(String args[]) < int a = 10; int b = 20; int c = 0; c = a + b; System.out.println("c = a + b = " + c ); c += a ; System.out.println("c += a = " + c ); c -= a ; System.out.println("c -= a = " + c ); c *= a ; System.out.println("c *= a = " + c ); a = 10; c = 15; c /= a ; System.out.println("c /= a = " + c ); a = 10; c = 15; c %= a ; System.out.println("c %= a c >= 2 c >>= a = " + c ); c &= a ; System.out.println("c &= 2 = " + c ); c ^= a ; System.out.println("c ^= a = " + c ); c |= a ; System.out.println("c |= a dos">c = a + b = 30 c += a = 40 c -= a = 30 c *= a = 300 c /= a = 1 c %= a = 5 c >= 2 = 5 c >>= 2 = 1 c &= a = 0 c ^= a = 10 c |= a = 10
Прочие операторы
Есть несколько других операторов, поддерживаемых языком Java.
Тернарный оператор или условный оператор (?:)
Тернарный оператор – оператор, который состоит из трех операндов и используется для оценки выражений типа boolean. Тернарный оператор в Java также известен как условный оператор. Этот. Цель тернарного оператора или условного оператора заключается в том, чтобы решить, какое значение должно быть присвоено переменной. Оператор записывается в виде:
переменная x = (выражение) ? значение if true : значение if false
Пример
Ниже приведен пример:
public class Test < public static void main(String args[])< int a , b; a = 10; b = (a == 1) ? 20 : 30; System.out.println( "Значение b: " + b ); b = (a == 10) ? 20 : 30; System.out.println( "Значение b: " + b ); >>
Будет получен следующий результат:
Значение b: 30 Значение b: 20
Оператор instanceof
Оператор instanceof – проверяет, является ли объект определенного типа (типа класса или типа интерфейса) и используется только для переменных ссылочного объекта. Оператор instanceof записывается в виде:
(Переменная ссылочного объекта) instanceof (класс/тип интерфейса)
Примеры
Если переменная ссылочного объекта в левой части оператора проходит проверку для класса/типа интерфейса на правой стороне, результатом будет значение true. Ниже приведен пример и описание оператора instanceof:
public class Test < public static void main(String args[])< String name = "Олег"; // Следующее вернётся верно, поскольку тип 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
Приоритет операторов определяет группирование терминов в выражении. Это влияет как вычисляется выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например оператор умножения имеет более высокий приоритет, чем оператор сложения:
Например, x = 7 + 3 * 2. Здесь x присваивается значение 13, не 20, потому что оператор «*» имеет более высокий приоритет, чем «+», так что сначала перемножается «3 * 2», а затем добавляется «7».
В таблице операторы с наивысшим приоритетом размещаются в верхней части, и уровень приоритета снижается к нижней части таблицы. В выражении высокий приоритет операторов в Java будет оцениваться слева направо.
Операторы в Java — шпаргалка с примерами
В этой статье вы узнаете о различных типах операторов Java и их синтаксисе.
Операторы это специальные символы, которые осуществляют операции над операндами ( переменными и значениями ). Например, « + » это оператор, который производит сложение.
Сейчас вы узнаете, как использовать операторы, чтобы манипулировать переменными.
Обновлено: 2022-05-31 17:27:10 КК Константин Кондрусин автор материала
Операторы присваивания
Используются в Java , чтобы присвоить значения переменным. Например,
int age;//возраст age = 5;
Оператор « = » присваивает значение справа от себя переменной, находящейся слева. В примере переменной age присвоено значение 5 .
Пример 1: оператор присваивания
class AssignmentOperator < public static void main(String[] args) < int number1, number2; // Присвоение переменной number1 значения 5 number1 = 5; System.out.println(number1); // Присвоение переменной number2 значения number1 number2 = number1; System.out.println(number2); >>
Когда вы запустите программу, на экран выведется:
Арифметические операторы
Арифметические операторы Java используются, чтобы производить математические операции сложения, вычитания умножения и так далее.
Арифметические операторы Java
Оператор | Значение |
---|---|
+ | Сложение (также используется для конкатенации строк) |
— | Вычитание |
* | Умножение |
/ | Деление |
% | Остаток от деления |
Пример 2: Арифметические операторы
class ArithmeticOperator < public static void main(String[] args) < double number1 = 12.5, number2 = 3.5, result; // Используется оператор сложения result = number1 + number2; System.out.println("number1 + number2 = " + result); // Используется оператор вычитания result = number1 - number2; System.out.println("number1 - number2 = " + result); // Используется оператор умножения result = number1 * number2; System.out.println("number1 * number2 = " + result); // Используется оператор деления result = number1 / number2; System.out.println("number1 / number2 = " + result); // Используется оператор остатка result = number1 % number2; System.out.println("number1 % number2 1" data-ab-test="post_related" data-ab-key="yarpp">Многопоточность в Java – руководство с примерамиКогда вы запустите программу, на экран выведется:
number1 + number2 = 16.0 number1 - number2 = 9.0 number1 * number2 = 43.75 number1 / number2 = 3.5714285714285716 number1 % number2 = 2.0В примере с оператором деления Java , приведенном выше, использованные операнды – переменные. Кроме этого могут использоваться символьные значения. Например:
result = number1 + 5.2; result = 2.3 + 4.5; number2 = number1 -2.9;Оператор « + » также может быть использован, чтобы соединить ( конкатенировать ) две строки или больше.
Пример 3: Арифметический оператор
class ArithmeticOperator < public static void main(String[] args) < String start, middle, end, result; start = "Разговоры ничего не стоят. "; middle = "Покажите мне код. "; end = "- Линус Торвальдс"; result = start + middle + end; System.out.println(result); >>Когда вы запустите программу, на экран выведется:
Разговоры ничего не стоят. Покажите мне код. - Линус ТорвальдсУнарные операторы
Унарный оператор Java производит операцию только над одним операндом.
Оператор | Значение |
+ | Унарный плюс (не нужен, так как числа положительные и без него). |
- | Унарный минус; инвертирует знак выражения. |
++ | Оператор инкремента; увеличивает значение на 1. |
-- | Оператор декремента; уменьшает значение на 1. |
! | Оператор логического отрицания; инвертирует значение булевой переменной. |
Пример 4: Унарный оператор
class UnaryOperator < public static void main(String[] args) < double number = 5.2, resultNumber; boolean flag = false; System.out.println("+number = " + +number); // number равен здесь 5.2. System.out.println("-number = " + -number); // number равен здесь 5.2 // ++number is Эквивалент number = number + 1 System.out.println("number = " + ++number); // number равен здесь 6.2 // -- number is Эквивалент number = number - 1 System.out.println("number = " + --number); // number равен здесь 5.2 System.out.println("!flag highlight" data-hscroll>+number = 5.2 -number = -5.2 number = 6.2 number = 5.2 !flag = trueВ Java можно использовать операторы « ++ » и « -- » в качестве префикса и постфикса. Оператор « ++ » увеличивает значение на 1 , а « -- » уменьшает значение на 1 .
int myInt = 5; ++myInt // myInt принимает значение 6 myInt++ // myInt принимает значение 7 --myInt // myInt принимает значение 6 myInt-- // myInt принимает значение 5Есть большая разница в использовании операторов Java инкремента и декремента в префиксе и в постфиксе. Рассмотрим следующий пример.
Пример 5: Унарный оператор
class UnaryOperator < public static void main(String[] args) < double number = 5.2; System.out.println(number++); System.out.println(number); System.out.println(++number); System.out.println(number); >>Когда вы запустите программу, на экран выведется:
5.2 6.2 7.2 7.2Когда выполняется выражение System.out.println(number++) , первым вычисляется изначальное значение. Переменная number увеличивается только после этого. Поэтому вы получите на выходе 5.2 . Далее, когда выполняется System.out.println(number) , показывается значение 6.2 .
Тем не менее, когда выполняется System.out.println(++number) , number увеличивается на 1 перед тем, как будет выведено на экран. Так же обстоят дела и с оператором Java декремента.
Операторы равенства и отношений
Операторы равенства и отношений проверяют, является ли операнд больше, меньше, равен, неравен второму и так далее. Получаемый результат равен true или false .
Операторы равенства и отношений в Java
Оператор | Описание | Пример |
== | равен | 5 == 3 результат false |
!= | неравен | 5 != 3 результат true |
> | Больше | 5 > 3 результат true |
меньше | 5 < 3 результат false | |
>= | Больше или равен | 5 >= 5 результат true |
Меньше или равен | 5 |
Рассмотрим следующий простой пример.
Пример 6: Операторы равенства и отношений
class RelationalOperator < public static void main(String[] args) < int number1 = 5, number2 = 6; if (number1 >number2) < System.out.println("number1 больше, чем number2."); >else < System.out.println("number2 больше, чем number1."); >> >
Когда вы запустите программу, в которой используются операторы сравнения Java , на экран выведется:
number2 больше, чем number1.
Здесь мы использовали оператор « > », чтобы проверить, больше ли number1 , чем number2 .
Так как number2 больше, чем number1 , результатом выражения number1 > number2 будет false .
Кроме операторов отношений, есть оператор сравнения типов instanceof , который сравнивает объект и определенный тип.
Оператор instanceof
Пример оператора instanceof .
class instanceofOperator < public static void main(String[] args) < String test = "asdf"; boolean result; result = test instanceof String; System.out.println(result); >>
Когда вы запустите программу, на экран выведется true . Это происходит от того, что test — экземпляр класса String .
Логические операторы Java
Логические операторы Java || ( условное-ИЛИ (OR) ) и && ( условное-И (AND) ) совершают операции над булевыми выражениями. Вот как они работают.
Логические операторы Java
Оператор | Описание | Пример |
|| | условное-ИЛИ; true если хотя бы одно из булевых выражений истинно (true) | false || true результат - true |
&& | условное-И; истинно если все булевы выражения истинны (true). | false && true результат - false |
Пример 8: Логические операторы Java
class LogicOperator < public static void main(String[] args) < int number1 = 1, number2 = 2, number3 = 9; boolean result; // Хотя бы одно из выражений должно быть истинным, чтобы результат был истиной result = (number1 >number2) || (number3 > number1); // результат — истина, так как (number1 > number2) истинно System.out.println(result); // Все выражения должны быть истинными, чтобы результат был true result = (number1 > number2) && (number3 > number1); // Результат будет ложным(false), так как (number3 > number1) ложно System.out.println(result); > >
Когда вы запустите программу, на экран выведется:
true false
Тернарный оператор
Условный оператор или тернарный оператор Java « ? :» - это сокращение выражения if-then-else . Синтаксис условного оператора:
переменная = выражение ? выражение1 : выражение2
Вот как это работает.
- Если значение выражения - true , expression1 присваивается переменной ;
- Если значение выражения - false , expression2 присваивается переменной .
Пример 9: Тернарный оператор
class ConditionalOperator < public static void main(String[] args) < int februaryDays = 29;//дней в феврале String result; result = (februaryDays == 28) ? "Не високосный год" : "Високосный год"; System.out.println(result); >>
Когда вы запустите этот тернарный оператор Java пример, на экран выведется:
Високосный год
Побитовые операторы Java и смещение битов
Чтобы осуществлять побитовые операции Java предоставляет следующие операторы.
Побитовые операторы Java и смещение битов в Java
Оператор | Описание |
~ | Побитовое дополнение. |
Левый сдвиг. | |
>> | Правый сдвиг. |
>>> | Беззнаковый правый сдвиг. |
& | Побитовое И. |
^ | Побитовое исключающее ИЛИ. |
| | Побитовое включающее ИЛИ. |
Эти операторы применяются нечасто.
Другие операторы присваивания
В начале статьи мы рассмотрели только один оператор присваивания = . Существует еще несколько операторов Java присваивания.
Операторы присваивания в Java
Оператор | Пример | Эквивалент |
+= | x += 5 | x = x + 5 |
-= | x -= 5 | x = x – 5 |
*= | x *= 5 | x = x * 5 |
/= | x /= 5 | x = x / 5 |
%= | x %= 5 | x = x / 5 |
x | x = x | |
>>= | x >>= 5 | x = x >> 5 |
&= | x &= 5 | x = x & 5 |
^= | x ^= 5 | x = x ^ 5 |
|= | x |= 5 | x = x | 5 |
Операторы в Java: для чего нужны и какие бывают
Знакомимся с основными инструментами языка и учимся работать с ними на практике.
Иллюстрация: Оля Ежак для Skillbox Media
Лев Сергеев
Программист, музыкант. Знает Java, C# и Unity3D, но не собирается останавливаться на достигнутом.
Все мы со школы знакомы с математическими знаками + (плюс), – (минус), = (равно) и так далее. В Java и других языках программирования эти символы называются операторами. Они нужны для того, чтобы сообщить компилятору, какое действие совершать с операндами — числами, строками, объектами и другими значениями по обе стороны оператора.
Например, на картинке выше оператор + говорит компилятору: «Сложи два числа». Но на практике чисел в выражении может быть разное количество — и одно, и два, и три. В этих случаях и операторы будут называться по-разному: унарные — что-то делают с одним операндом, бинарные — с двумя, и тернарные — с тремя.
В этой статье рассмотрим не только эти, но все основные виды операторов в Java:
- Присваивания
- Арифметические
- Унарные
- Сравнения
- Логические
- Тернарный
- Оператор instanceof
- Побитовые
- Составные операторы присваивания
Ещё поговорим о приоритетах операторов — разберёмся, в каком порядке они выполняются. Если вы хотите просто освежить в памяти суть работы разных операторов, можете сразу перейти к шпаргалке в конце статьи.
Оператор присваивания в Java
Оператор присваивания в Java — это знак = (равно). Его задача — переложить значение переменной справа в переменную слева:
Вот как это выглядит в коде (в комментариях — разбор синтаксиса):
Тернарный оператор в Java: можно, только осторожно
Что делает: сокращает условную конструкцию if-else до одной строчки.
Тернарный оператор (от латинского слова ternarius — «тройной») — это языковая конструкция, которая состоит из трёх операндов: логического условия и двух выражений. Если результат логического условия будет true, выполнится первое выражение, если false — второе. Записываются тернарные операторы так:
Фишка в том, что таким образом мы можем записать конструкцию if-else всего одной строчкой. Допустим, нам нужно проверить булеву переменную condition — если она возвращает true, то переменная a = 100, а если false, то a = 200. Посмотрите, как легко это можно сделать с помощью тернарного оператора:
Кажется, что эти if-else теперь вообще больше не нужны. Мол, ставь везде тернарные операторы, и дело с концом. Однако в больших программах со сложной логикой это может повредить читаемости кода. Это в нашем примере выражение простое — а представьте, если в каждое выражение положить ещё по одному оператору. Получится неопрятно. Другому разработчику, который будет читать наш код, разобраться будет сложно.
Поэтому тернарные операторы рекомендуют использовать в тех случаях, когда условие простое и легко проверяется. А во всех остальных случаях прибегать к привычным «ифам» и «элсам».
Подробно о том, как работать с тернарными операторами, мы рассказывали в статье: «Тип Boolean и операторы сравнения в Java».
Оператор instanceof в Java
Что делает: проверяет, принадлежит ли объект к какому-то классу или интерфейсу, и возвращает булево значение — то есть true или false.
Использование instanceof актуально, когда нужно проверить родителя объекта прямо во время выполнения программы. Например, если объекты приходят в ваш код из базы данных или другого потока выполнения и вам нужно убедиться, что к ним можно применять методы какого-то класса. Записывается instanceof так:
Побитовые операторы вычисления бывают следующими:
Символ | Что означает |
---|---|
& | Побитовое И (AND) — умножение |
| | Побитовое ИЛИ (OR) — сложение |
^ | Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) — вычитание |
~ | Побитовое НЕ (NOT) — отрицание |
Чтобы посмотреть, как работают побитовые вычисления в Java, переведём несколько десятичных чисел в двоичную систему счисления:
Если разобраться в концепции старшего бита, можно без труда освоить три оставшихся побитовых оператора, которые называются операторами смещения битов:
Символ | Что означает |
---|---|
Сдвиг битов влево | |
>> | Сдвиг битов вправо |
>>> | Беззнаковый сдвиг битов вправо |
Операторы сдвига смещают все биты в левую или правую сторону, но делают это по-разному:
- >> не трогает старший бит, оставляя число с тем же знаком (отрицательным или положительным). Ячейки отрицательных чисел при >> заполняются единицами.
- >>> и — затрагивают все биты. Освободившиеся ячейки справа заполняются нулями. Наполнение ячеек слева зависит от знака и оператора.
Звучит сложно, на деле — тоже сложно. Но попробуем разобраться на примере — разложим какое-то десятичное число на биты и посмотрим, как работает смещение битов.
В Java есть метод toBinaryString(), который показывает, как выглядят десятичные числа в двоичной системе. Но двоичные числа — это ещё не биты. Например, число 2 занимает 32 бита, но если обработать его методом toBinaryString(), на экране появятся только два из них: 1 и 0. Оставшиеся 30 нулей просто «обрезаются». Это происходит по той же причине, по которой мы, например, не пишем десятичное число 9 как 009.
Плюс составных операторов в том, что они записываются короче и неявно приводят переменные к одному типу, если эти типы различаются. Например, в сокращённом варианте можно сложить дроби и числа без приведения, и нам за это ничего не будет. А в полной записи будет ошибка:
int x = 1; double y = 3.1415d; x = x + y; // Эта строка не скомпилируется x += y; // А здесь всё хорошо // Оператор += в развёрнутом виде x = (int)(x + y);
Приоритеты операторов Java
У каждого оператора Java есть свой приоритет. Чем он выше, тем раньше оператор выполнится в выражении. Бинарные и тернарный операторы (кроме присваивания) выполняются слева направо, а остальные (унарные и присваивания) — справа налево.
Приоритет (снизу вверх) |
Группа | Операторы |
---|---|---|
13 | Постфиксные | x++ x–– |
12 | Унарные | ++x ––x +x –x ~x !x |
11 | Мультипликативные | * / % |
10 | Аддитивные | + - |
9 | Сдвига битов | >> >>> |
8 | Сравнения | > >= instanceof |
7 | Равенства | == != |
6 | Побитовое И | & |
5 | Побитовое исключающее ИЛИ | ^ |
4 | Побитовое ИЛИ | | |
3 | Логическое И | && |
2 | Логическое ИЛИ | || |
1 | Тернарный | ? : |
0 | Присваивания | = += -= *= /= %= &= ^= |= <>>= >>>= |
Резюме: что нужно запомнить
Мы рассмотрели все основные операторы в Java и их работу на примерах. Попробуем кратко резюмировать, что нужно вынести из этой статьи:
- Оператор — это языковая конструкция, которая выполняет действие над операндом.
- Операнд— это число, переменная, объект и так далее, с которыми оператор совершает какие-то действия (например, арифметическое и логическое).
- Операторы бывают унарные, бинарные и тернарные — это зависит от того, сколько операндов они обрабатывают.
- Арифметические операторы нужны для простых математических действий: сложения, вычитания, умножения, деления и деления с остатком.
- Унарные операторы работают только с одним операндом. Это унарные минус и плюс, инкремент, декремент, логическое и побитовое отрицание.
- Операторы сравнения сопоставляют значения двух операторов и возвращают ответ — true или false.
- Логические операторы заточены уже не на числа, а на целые выражения — и на их основе создают сложные условия, например, для работы в циклах.
- Тернарный оператор умеет работать сразу с тремя операндами: условием и двумя выражениями. То есть им вполне можно заменить ветвления типа if-else.
- Операторinstanceof определяет принадлежность объекта к классу.
- Побитовые операторы нужны для проведения операций с битами — если упростить, то с нулями и единицами в двоичной системе счисления.
- Составные операторы неявно приводят типы данных, если они разные.
- У каждого оператора есть свой приоритет.
Для более глубокого понимания темы можно почитать другие наши статьи: «Тип Boolean и операторы сравнения в Java» и «Логические операторы в Java». А если хотите совсем хорошо разобраться, почитайте официальную документацию Java — это вообще лучший способ освоить язык со всеми его тонкостями.
Читайте также:
- Тип Boolean и операторы сравнения в Java
- Тест. Какой язык создадите вы — Java или Python?
- Чем различается фронтенд- и бэкенд-разработка
Что означает в java
подскажите есть ли похожая статья по всем логическим операциям? хотелось бы подробно почитать про & | ^. И было бы здорово если кто даст ссылку про побитовые операции, вообще не знаком с ними
Javagator #3400119 Уровень 3 Expert
14 февраля 2024
В далеких нулевых, когда все мы еще ощущали особую глубину интернета, а я был классе в 7 мне довелось взаимодействовать с Си подобным языком Pawn, на нем тогда можно было пилить сервера для GTA:Sa Online. Было очень ценно находить материалы для изучения и еще более ценным было когда, что-то получалось. Прошли года, прежде чем я твердо решил, что для самоуважения (и не только) необходимо полноценно освоить язык программирования. Выбрал Java. Повезло узнать о JavaRush. Уважаемые коллеги, спасибо за всю ту ГЛУБИНУ, которую я ощущаю на JavaRush. Это очень приятно!
Anastasiia Уровень 7 Expert
2 февраля 2024
Пока что для меня это единственная лекция, в которой понятно ВСЁ Тоже были вопросы при инкремент и декремент, но я приняла ситуацию (разобралась)
Олег Королев Уровень 3 Expert
19 января 2024
Совсем не догоняю логику как работает постфиксная операция в описанном примере. int x = 999; int y = x++; System.out.println(y); System.out.println(x); 999 1000 Говорится что сначала выполняется y = x (и переменной y будет присвоено изначальное значение x), а только потом x++. Т.е значению y присваивается значение 999,а потом 1000. Но зачем мне знать 2 присваеваемых значения y? Если выводится один x и один y. Даже если так, y=1000, а x=999, то с ответами не бъется.
7 января 2024
Все еще не понимаю как компилятор читает код. Вроде как слева направо, но присвоение идет справа налево. А когда идет постфик++ сначала справа налево, а потом слева направо. Как так работает, что у = сначала х, а только потом х++. Почему она сразу не присваивает? Вообщем, мне кажется нужна подробная лекция или объяснение о всей сути чтения программ.
20 декабря 2023
После выражения public static void main(String[] args) < слова "для краткости записи" вызывают нервный тик.
mz Уровень 10
4 ноября 2023
Насчёт инкремента и декремента. 1.Постфиксная форма записи это i++. То есть переменной i сначала возвращается текущее значение, а после уже значение i увеличивается на 1. 2.Префиксная форма записи это ++i, то есть сразу значение i увеличится на 1, и после этого сразу же присвоится переменной i.
1 ноября 2023
а как работает %= . остаток от деления х на у?
4 августа 2023
Здесь нет ошибки? Все корректно? Не совсем понятно как будет работать,если будет например 7 чисел,как будет работать сравнение?? По логике просто слева направо должно,а здесь все запутно