Elementor Header #8

9.Приоритет операций

1. Введение

Приоритет операций в C# определяет порядок выполнения операторов в сложных выражениях. Если в выражении несколько операторов, они выполняются в соответствии с их приоритетом. Операторы с более высоким приоритетом выполняются раньше, чем операторы с более низким.

Если необходимо изменить порядок выполнения операций, используются скобки (), которые имеют наивысший приоритет.


2. Таблица приоритета операторов в C#

ПриоритетОператорыОписаниеАссоциативность
1 (высокий)()Скобки
2++ -- ! ~Инкремент, декремент, логическое «НЕ», побитовый «НЕ»справа налево
3* / %Умножение, деление, остаток от деленияслева направо
4+ -Сложение, вычитаниеслева направо
5<< >>Побитовый сдвиг влево и вправослева направо
6< <= > >=Сравнение (меньше, больше)слева направо
7== !=Равенство и неравенствослева направо
8&Побитовое «И»слева направо
9^Побитовое «Исключающее ИЛИ»слева направо
10``Побитовое «ИЛИ»
11&&Логическое «И»слева направо
12` `
13?:Тернарный операторсправа налево
14 (низкий)`= += -= *= /= %= &= ^== <<= >>=`Операторы присваивания

📌 Чем выше приоритет, тем раньше выполняется оператор.
📌 Если операторы имеют одинаковый приоритет, выполняется тот, который стоит левее (если ассоциативность «слева направо») или правее (если «справа налево»).


3. Примеры приоритета операций

3.1. Арифметические операции

				
					int result = 10 + 5 * 2; 
Console.WriteLine(result); // 10 + (5 * 2) = 10 + 10 = 20

				
			

Умножение (*) имеет более высокий приоритет, чем сложение (+), поэтому выполняется первым.

3.2. Скобки меняют порядок вычислений

				
					int result = (10 + 5) * 2; 
Console.WriteLine(result); // (10 + 5) * 2 = 15 * 2 = 30

				
			

Скобки () имеют высший приоритет и заставляют сложение выполняться первым.

3.3. Логические операторы

				
					bool result = true || false && false;
Console.WriteLine(result); // true

				
			

Оператор && имеет более высокий приоритет, чем ||, поэтому сначала вычисляется false && false (что дает false), а затем true || false (что дает true).

3.4. Побитовые операции

				
					int result = 5 | 3 & 1;
Console.WriteLine(result); // 5 | (3 & 1) → 5 | 1 → 5

				
			
Побитовое «И» (&) имеет более высокий приоритет, чем «ИЛИ» (|).

4. Использование скобок для явного контроля порядка вычислений

В сложных выражениях можно использовать скобки, чтобы избежать ошибок и сделать код более читаемым.

❌ Плохая практика:

				
					int result = 10 + 5 * 2 - 3 / 2;

				
			

Код сложен для понимания, так как операторы выполняются в разном порядке.

✅ Хорошая практика:

				
					int result = ((10 + 5) * 2) - (3 / 2);

				
			

Заключение

Приоритет операций в C# определяет порядок выполнения операторов в выражениях. Чтобы избежать ошибок:

Запоминайте приоритет операторов (умножение и деление выполняются перед сложением и вычитанием).
Используйте скобки () для явного управления порядком вычислений.
Следите за логикой выполнения логических и побитовых операций.

Чем лучше вы понимаете приоритет операций, тем чище и понятнее будет ваш код! 🚀

Задание 1: Какой будет результат?

Какой результат выведет следующий код?

				
					int result = 5 + 3 * 2 - 8 / 4;
Console.WriteLine(result);

				
			

📌 Подсказка: Следуйте таблице приоритета.

Задание 2: Исправьте код с неверным порядком выполнения операций

Исправьте код так, чтобы сначала выполнялось сложение 5 + 3, а затем умножение.

				
					int result = 5 + 3 * 2;
Console.WriteLine(result);

				
			

Правильный вариант:

				
					int result = (5 + 3) * 2;
Console.WriteLine(result); // 16

				
			

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

logo