В този раздел ще научим оператор приоритет в Java заедно с примери.
Какво е приоритет на оператора?
The приоритет на оператора представя как два израза се свързват заедно. В израз той определя групирането на оператори с операнди и решава как ще се оценява изразът.
Докато решавате израз, трябва да имате предвид две неща, първото е a предимство а второто е асоциативност .
Предимство
Приоритетът е приоритетът за групиране на различни типове оператори с техните операнди. Има смисъл само ако изразът има повече от един оператор с по-висок или по-нисък приоритет. Първи се оценяват операторите с по-висок приоритет. Ако искаме първо да оценим оператори с по-нисък приоритет, трябва да групираме операндите с помощта на скоби и след това да оценим.
Асоциативност
Трябва да следваме асоциативността, ако един израз има повече от два оператора с еднакъв приоритет. В такъв случай един израз може да бъде решен Отляво надясно или от дясно на ляво, съответно.
Таблица с приоритет на Java оператори
Следната таблица описва приоритета и асоциативността на операторите, използвани в Java.
Предимство | Оператор | Тип | Асоциативност |
---|---|---|---|
петнадесет | () [] · | Скоби Долен индекс на масив Избор на членове | Отляво надясно |
14 | ++ -- | Унарен постинкремент Унарен постдекремент | От дясно на ляво |
13 | ++ -- + - ! ~ (Тип) | Унарен преинкремент Унарен предекремент Унарен плюс Унарен минус Унарно логическо отрицание Унарно побитово допълнение Унарен тип отливка | От дясно на ляво |
12 | * / % | Умножение дивизия Модул | Отляво надясно |
единадесет | + - | Допълнение Изваждане | Отляво надясно |
10 | << >> >>> | Побитово изместване наляво Побитово изместване надясно със знаково разширение Побитово изместване надясно с нулево разширение | Отляво надясно |
9 | < <= > >= instanceof=> | Релационно по-малко от Релационно по-малко или равно Релационно по-голямо от Релационно по-голямо или равно Сравнение на типове (само обекти) | Отляво надясно |
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 поради асоциативността.