logo

Найвищий пріоритет у Java

Коли ми говоримо про пріоритет у Java, насамперед маємо на увазі оператор. Існують певні правила, визначені в Java, щоб визначити порядок, у якому обчислюються оператори у виразі. Пріоритет оператора це концепція визначення групи термінів у виразі. Пріоритет оператора відповідає за обчислення виразів. в Java , круглі дужки() і Індекс масиву[] мають найвищий пріоритет у Java. Наприклад, додавання та віднімання мають вищий пріоритет, ніж оператори зсуву вліво та вправо.

Найвищий пріоритет у Java

Нижче наведено визначену таблицю, у якій оператор найнижчого пріоритету відображається у верхній частині.

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

Порядок пріоритету

Коли два оператори використовують один операнд, першим йде оператор із найвищим пріоритетом. Наприклад, x + y * z розглядається як x + (y * z), тоді як x * y + z розглядається як (x * y) + z, оскільки оператор * має найвищий пріоритет у порівнянні з оператором +.

пасхальні яйця на android

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

Асоціативність — це концепція, пов’язана з операторами, які застосовуються, коли у виразі входять два оператори з однаковим пріоритетом. Концепція асоціативності дуже допомагає вийти з цієї ситуації. Припустимо, ми маємо вираз a + b - c (оператори + і - мають однаковий пріоритет) , і цей вираз буде розглядатися як (a + (b - c)) оскільки ці оператори є асоціативними справа наліво. З іншого боку, a+++--b+c++ буде розглядатися як ((a++)+((--b)+(c++))) оскільки унарні оператори постінкременту та декременту є асоціативними справа наліво.

Нижче наведено приклад, щоб зрозуміти, як вираз обчислюється за допомогою порядку пріоритету та асоціативності?

Вираз: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3

рішення:

1) У наведеному вище виразі оператор найвищого пріоритету () . Отже, дужки йдуть першими і обчислюють першими.

х = 4 / 2 + 8 * 4 - 7 % 3

2) Тепер, /, * і % оператори мають однаковий пріоритет і найвищий із + і - Тут ми використовуємо концепцію асоціативності для їх вирішення. Асоціативи цих операторів розташовані зліва направо. Так, / оператор іде спочатку, а потім * і % одночасно.

рядок java indexof

х = 2 + 8 * 4 - 7 % 3

х = 2 + 32 - 7 % 3

х = 2 + 32 - 1

3) Тепер, + і - обидва оператори також мають однаковий пріоритет, а асоціативність цих операторів менше праворуч. Так, + оператор піде спочатку, а потім - піду.

х = 34 - 1

х = 33

масив байтів до рядка java

HighestPrecedence.java

 //import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } } 

Вихід

Найвищий пріоритет у Java