Java: Приоритет операций

Author: Tatyana Milkina

В языке Java используется множество операций, каждая из которых выполняет определенную функцию. Операторы различаются по приоритету, который определяет порядок их выполнения в выражении. Например, умножение и деление, как и в математике, имеют более высокий приоритет, чем сложение и вычитание. Разделители (скобки, массивные индексы) обладают наивысшим приоритетом, за ними следуют унарные операции, а оператор присваивания имеет самый низкий приоритет.

Операторы в Java можно классифицировать на несколько типов: арифметические, логические, побитовые, сравнения и операторы присваивания. В таблице ниже представлен их порядок приоритета. Операторы, находящиеся в одной строке, имеют одинаковый приоритет. Чем ниже оператор в таблице, тем он выполняется позже в выражении:

Таблица приоритетов операций в Java
[] () .        
++ -- ~ ! +(унарная) - (унарная) (приведение типов)
* / %        
+ -          
>> >>> <<        
> >= < <= instanceof    
== !=          
&            

^

 

 

 

 

 

 

|            
&&            
||            
? :            
->            
=            

Пример влияния приоритета операторов

Рассмотрим два выражения:

int a = 5 + 3 * 2; // результат: 11, так как умножение выполняется первым
int b = (5 + 3) * 2; // результат: 16, так как сложение выполняется первым из-за скобок

Как видно из примера, использование круглых скобок позволяет изменить порядок выполнения операций, что может существенно влиять на итоговый результат.

Пример использования логических операторов

boolean result = (5 > 3) && (10 > 8); // true, так как оба условия верны
boolean result2 = (5 > 3) || (10 < 8); // true, так как одно из условий верно

Логические операторы && и || подчиняются приоритету: && выполняется раньше, чем ||. Однако лучше использовать скобки для повышения читаемости.

Презентацию с видео можно скачать на Patreon.

Курс 'Java для начинающих' на Udemy Курс 'Java для начинающих' на Udemy
Читайте также:
Комментарии