Перевага оператора Java

Пріоритет оператора визначає порядок, в якому оцінюються оператори у виразі.

Перш ніж почати читати цю статтю, ви повинні мати базові знання операторів Java.

Тепер погляньте на твердження нижче:

 int myInt = 12 - 4 * 2;

Якою буде цінність myInt? Це буде (12 - 4)*2, тобто 16? Або буде 12 - (4 * 2), тобто 4?

Коли два оператори мають спільний операнд, 4у цьому випадку оператором з найвищим пріоритетом оперується першим.

У Java пріоритет *вище, ніж у -. Отже, множення виконується перед відніманням, і значення myInt буде 4.

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

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

Перевага оператора Java
Оператори Перевага
постфіксне збільшення та зменшення ++ --
префікс інкремент і декремент, і одинарний ++ -- + - ~ !
мультиплікативний * / %
добавка + -
зміна << >> >>>
реляційний < > <= >= instanceof
рівність == !=
побітове І &
побітове виключне АБО ^
побітове включення АБО |
логічне І &&
логічне АБО ||
потрійний ? :
доручення = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Приклад: Перевага оператора

 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )

Вихід :

 2

Пріоритет оператора префікса ++вище, ніж у -оператора віднімання. Отже,

 результат = a - ++ c - ++ b;

еквівалентно

 результат = a - (++ c) - (++ b);

Маючи справу з кількома операторами та операндами в одному виразі, ви можете використовувати дужки, як у наведеному вище прикладі для наочності. Вираз усередині дужок обчислюється спочатку.

Асоціативність операторів на Java

Якщо вираз має два оператори з однаковим пріоритетом, вираз обчислюється відповідно до його асоціативності (або зліва направо, або справа наліво). Візьмемо приклад.

 a = b = c;

Тут значення c присвоюється змінній b. Тоді значення b присвоюється змінній a. Чому? Це тому, що асоціативність = оператора справа наліво.

У таблиці нижче показано асоціативність операторів Java разом з їх асоціативністю.

Пріоритет та асоціативність оператора Java
Оператори Перевага Асоціативність
постфіксне збільшення та зменшення ++ -- зліва направо
префікс інкремент і декремент, і одинарний ++ -- + - ~ ! справа наліво
мультиплікативний * / % зліва направо
добавка + - зліва направо
зміна << >> >>> зліва направо
реляційний < > <= >= instanceof зліва направо
рівність == != зліва направо
побітове І & зліва направо
побітове виключне АБО ^ зліва направо
побітове включення АБО | зліва направо
логічне І && зліва направо
логічне АБО || зліва направо
потрійний ? : справа наліво
доручення = += -= *= /= %=
&= ^= |= <<= >>= >>>=
справа наліво

Тут не потрібно запам’ятовувати все. Здебільшого переважність та асоціативність операторів мають сенс самі по собі. Ви завжди можете повернутися до цієї статті для довідки, якщо сумніваєтесь. Крім того, ви можете використовувати дужки, якщо вважаєте, що це полегшує розуміння вашого коду.

Цікаві статті...