logo

Най-висок приоритет в Java

Когато говорим за приоритет в Java, операторът е на първо място. Има определени правила, дефинирани в Java за определяне на реда, в който се оценяват операторите в израза. Приоритет на оператора е концепция за определяне на групата термини в израз. Приоритетът на оператора е отговорен за оценката на изразите. в Java , скоби() и Долен индекс на масива[] имат най-висок приоритет в Java. Например, събирането и изваждането имат по-висок приоритет от операторите за ляво и дясно преместване.

Най-висок приоритет в Java

По-долу е дефинирана таблица, в която операторът с най-нисък приоритет се показва в горната й част.

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

Ред на предимство

Когато два оператора споделят един операнд, операторът с най-висок приоритет е първи. Например x + y * z се третира като x + (y * z), докато x * y + z се третира като (x * y) + z, тъй като операторът * има най-висок приоритет в сравнение с оператора +.

как да надстроя java

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

Асоциативността е концепция, свързана с операторите, прилагани, когато два оператора с еднакъв приоритет влизат в израз. Концепцията за асоциативност е много полезна за излизане от тази ситуация. Да предположим, че имаме израз a + b - c (операторите + и - имат еднакъв приоритет) и този израз ще се третира като (a + (b - c)) защото тези оператори са асоциативни от дясно на ляво. От друга страна, a+++--b+c++ ще се третира като ((a++)+((--b)+(c++))) защото унарните оператори за пост-инкремент и декремент са асоциативни от дясно към ляво.

По-долу е дефиниран пример, за да разберете как един израз се оценява с помощта на приоритетен ред и асоциативност?

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

Решение:

1) В горния израз операторът с най-висок приоритет е () . И така, скобите са първи и първо изчисляват.

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

2) Сега, /, * и % операторите имат същия приоритет и най-висок от + и - Тук използваме концепцията за асоциативност, за да ги разрешим. Асоциациите на тези оператори са отляво надясно. Така, / операторът отива първо и след това * и % едновременно.

numpy сумиране

x = 2 + 8 * 4 - 7 % 3

х = 2 + 32 - 7 % 3

х = 2 + 32 - 1

3) Сега, + и - и двата оператора имат еднакъв приоритет и асоциативността на тези оператори най-отдясно. Така, + операторът ще отиде първи, а след това - ще отида.

х = 34 - 1

х = 33

хибернация диалект

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