У цьому розділі ми дізнаємося оператор пріоритет у Java разом із прикладами.
Що таке пріоритет оператора?
The пріоритет оператора показує, як два вирази зв'язуються разом. У виразі він визначає групування операторів із операндами та визначає, як вираз буде обчислюватися.
Під час розв’язування виразу слід пам’ятати про дві речі: перша – це a пріоритет а другий є асоціативність .
Пріоритет
Пріоритет є пріоритетом для групування різних типів операторів з їхніми операндами. Це має сенс, лише якщо вираз має більше одного оператора з вищим або нижчим пріоритетом. Першими оцінюються оператори з вищим пріоритетом. Якщо ми хочемо спочатку оцінити оператори нижчого пріоритету, ми повинні згрупувати операнди за допомогою круглих дужок, а потім виконати оцінку.
Асоціативність
Ми повинні дотримуватися асоціативності, якщо вираз має більше двох операторів однакового пріоритету. У такому випадку вираз можна розв’язати зліва направо або справа наліво, відповідно.
Таблиця пріоритетів операторів 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 через асоціативність.