Главная страница » C# » 9.Приоритет операций
Приоритет операций в C# определяет порядок выполнения операторов в сложных выражениях. Если в выражении несколько операторов, они выполняются в соответствии с их приоритетом. Операторы с более высоким приоритетом выполняются раньше, чем операторы с более низким.
Если необходимо изменить порядок выполнения операций, используются скобки (), которые имеют наивысший приоритет.
| Приоритет | Операторы | Описание | Ассоциативность |
|---|---|---|---|
| 1 (высокий) | () | Скобки | — |
| 2 | ++ -- ! ~ | Инкремент, декремент, логическое «НЕ», побитовый «НЕ» | справа налево |
| 3 | * / % | Умножение, деление, остаток от деления | слева направо |
| 4 | + - | Сложение, вычитание | слева направо |
| 5 | << >> | Побитовый сдвиг влево и вправо | слева направо |
| 6 | < <= > >= | Сравнение (меньше, больше) | слева направо |
| 7 | == != | Равенство и неравенство | слева направо |
| 8 | & | Побитовое «И» | слева направо |
| 9 | ^ | Побитовое «Исключающее ИЛИ» | слева направо |
| 10 | ` | ` | Побитовое «ИЛИ» |
| 11 | && | Логическое «И» | слева направо |
| 12 | ` | ` | |
| 13 | ?: | Тернарный оператор | справа налево |
| 14 (низкий) | `= += -= *= /= %= &= ^= | = <<= >>=` | Операторы присваивания |
📌 Чем выше приоритет, тем раньше выполняется оператор.
📌 Если операторы имеют одинаковый приоритет, выполняется тот, который стоит левее (если ассоциативность «слева направо») или правее (если «справа налево»).
int result = 10 + 5 * 2;
Console.WriteLine(result); // 10 + (5 * 2) = 10 + 10 = 20
✅ Умножение (*) имеет более высокий приоритет, чем сложение (+), поэтому выполняется первым.
int result = (10 + 5) * 2;
Console.WriteLine(result); // (10 + 5) * 2 = 15 * 2 = 30
✅ Скобки () имеют высший приоритет и заставляют сложение выполняться первым.
bool result = true || false && false;
Console.WriteLine(result); // true
✅ Оператор && имеет более высокий приоритет, чем ||, поэтому сначала вычисляется false && false (что дает false), а затем true || false (что дает true).
int result = 5 | 3 & 1;
Console.WriteLine(result); // 5 | (3 & 1) → 5 | 1 → 5
&) имеет более высокий приоритет, чем «ИЛИ» (|).В сложных выражениях можно использовать скобки, чтобы избежать ошибок и сделать код более читаемым.
int result = 10 + 5 * 2 - 3 / 2;
Код сложен для понимания, так как операторы выполняются в разном порядке.
int result = ((10 + 5) * 2) - (3 / 2);
Приоритет операций в C# определяет порядок выполнения операторов в выражениях. Чтобы избежать ошибок:
✔ Запоминайте приоритет операторов (умножение и деление выполняются перед сложением и вычитанием).
✔ Используйте скобки () для явного управления порядком вычислений.
✔ Следите за логикой выполнения логических и побитовых операций.
Чем лучше вы понимаете приоритет операций, тем чище и понятнее будет ваш код! 🚀
Какой результат выведет следующий код?
int result = 5 + 3 * 2 - 8 / 4;
Console.WriteLine(result);
📌 Подсказка: Следуйте таблице приоритета.
Исправьте код так, чтобы сначала выполнялось сложение 5 + 3, а затем умножение.
int result = 5 + 3 * 2;
Console.WriteLine(result);
int result = (5 + 3) * 2;
Console.WriteLine(result); // 16
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.
Язык сайта: