logo

Пріоритет оператора Java

У цьому розділі ми дізнаємося оператор пріоритет у Java разом із прикладами.

Що таке пріоритет оператора?

The пріоритет оператора показує, як два вирази зв'язуються разом. У виразі він визначає групування операторів із операндами та визначає, як вираз буде обчислюватися.

Під час розв’язування виразу слід пам’ятати про дві речі: перша – це a пріоритет а другий є асоціативність .

Пріоритет оператора Java

Пріоритет

Пріоритет є пріоритетом для групування різних типів операторів з їхніми операндами. Це має сенс, лише якщо вираз має більше одного оператора з вищим або нижчим пріоритетом. Першими оцінюються оператори з вищим пріоритетом. Якщо ми хочемо спочатку оцінити оператори нижчого пріоритету, ми повинні згрупувати операнди за допомогою круглих дужок, а потім виконати оцінку.

Асоціативність

Ми повинні дотримуватися асоціативності, якщо вираз має більше двох операторів однакового пріоритету. У такому випадку вираз можна розв’язати зліва направо або справа наліво, відповідно.

Таблиця пріоритетів операторів Java

У наведеній нижче таблиці описано пріоритет і асоціативність операторів, які використовуються в Java.

Пріоритет Оператор Тип Асоціативність
п'ятнадцять ()
[]
·
Круглі дужки
Індекс масиву
Вибір учасників
Зліва направо
14 ++
--
Унарний постінкремент
Унарний постдекремент
Справа наліво
13 ++
--
+
-
!
~
(тип)
Унарний преінкремент
Унарний переддекремент
Унарний плюс
Унарний мінус
Унарне логічне заперечення
Унарне порозрядне доповнення
Приведення унарного типу
Справа наліво
12 *
/
%
Множення
Поділ
Модуль
Зліва направо
одинадцять +
-
Доповнення
Віднімання
Зліва направо
10 <<
>>
>>>
Порозрядний зсув вліво
Порозрядний зсув вправо з розширенням знака
Порозрядний зсув вправо з нульовим розширенням
Зліва направо
9 <
<=
>
>=
екземпляр
Реляційне менше ніж
Відношення менше або дорівнює
Реляційне більше ніж
Відношення більше або дорівнює
Порівняння типів (лише об'єкти)
Зліва направо
8 ==
!=
Реляційний дорівнює
Реляційне не дорівнює
Зліва направо
7 & Побітове І Зліва направо
6 ^ Порозрядне виключаюче АБО Зліва направо
5 | Побітове включне АБО Зліва направо
4 && Логічне І Зліва направо
3 || Логічне АБО Зліва направо
2 ? : Тернарний умовний Справа наліво
1 =
+=
-=
*=
/=
%=
призначення
Присвоєння доповнення
Віднімання завдання
Завдання на множення
Призначення поділу
Присвоєння модуля
Справа наліво

Примітка: Чим більше число, тим вищий пріоритет.

Приклад пріоритету оператора Java

Давайте розберемо пріоритет оператора на прикладі. Розгляньте наступний вираз і вгадайте відповідь.

 1 + 5 * 3 

Ви можете подумати, що відповідь буде 18 але не так. Оскільки оператор множення (*) має вищий пріоритет, ніж оператор додавання (+). Отже, вираз спочатку обчислює 5*3, а потім обчислює решту виразу, тобто 1+15. Тому відповідь буде 16 .

Давайте подивимося інший приклад. Розглянемо наступний вираз.

 x + y * z / k 

У наведеному вище виразі операції * і / виконуються перед + через пріоритет. y множиться на z перед тим, як ділитися на k через асоціативність.