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
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.