Главная страница » C# » 8.Композиция операций
Композиция операций — это процесс объединения нескольких операторов в одно выражение. В C# операции могут комбинироваться, следуя правилам приоритета и ассоциативности. Композиция позволяет писать компактный код, но требует внимательности к порядку вычислений.
При композиции операций важно учитывать приоритет (какие операции выполняются первыми) и ассоциативность (в каком порядке операции группируются).
Приоритет | Операторы | Ассоциативность |
---|---|---|
1 (высокий) | () (скобки) | — |
2 | ++ , -- , ! , ~ | справа налево |
3 | * , / , % | слева направо |
4 | + , - | слева направо |
5 | << , >> (сдвиги) | слева направо |
6 | < , <= , > , >= | слева направо |
7 | == , != | слева направо |
8 | & | слева направо |
9 | ^ | слева направо |
10 | ` | ` |
11 | && | слева направо |
12 | ` | |
13 | ?: (тернарный оператор) | справа налево |
14 | = , += , -= , *= , /= , %= | справа налево |
📌 Операции с более высоким приоритетом выполняются первыми. Если приоритет одинаковый, порядок выполнения определяется ассоциативностью.
int result = 10 + 5 * 2; // 5 * 2 = 10, затем 10 + 10 = 20
Console.WriteLine(result);
int result = (10 + 5) * 2; // (10 + 5) = 15, затем 15 * 2 = 30
Console.WriteLine(result);
Комбинирование логических операторов (&&
, ||
, !
):
bool a = true, b = false, c = true;
bool result = a && (b || c); // true && (false || true) → true && true → true
Console.WriteLine(result);
Тернарный оператор может быть вложенным:
int age = 20;
string category = (age < 18) ? "Несовершеннолетний" : (age < 65) ? "Взрослый" : "Пенсионер";
Console.WriteLine(category);
📌 Вложенные тернарные операторы могут ухудшить читаемость кода, поэтому используйте их осторожно.
Можно комбинировать побитовые операции:
int x = 5; // 0101
int y = 3; // 0011
int result = (x & y) | (x ^ y); // (0101 & 0011) | (0101 ^ 0011) → 0001 | 0110 → 0111 (7)
Console.WriteLine(result);
Композиция операций — мощный инструмент в программировании, позволяющий писать более краткий и выразительный код. Однако важно:
✔ Учитывать приоритет операторов.
✔ Использовать скобки для явного контроля порядка вычислений.
✔ Следить за читаемостью кода, не усложняя его излишней вложенностью.
Практикуйтесь, чтобы лучше понимать, как составлять сложные выражения и использовать их эффективно! 🚀
Напишите программу, которая:
"Число четное"
, иначе "Число нечетное"
.
using System;
class Program
{
static void Main()
{
Console.Write("Введите число a: ");
double a = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите число b: ");
double b = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите число c: ");
double c = Convert.ToDouble(Console.ReadLine());
if (a - b == 0)
{
Console.WriteLine("Ошибка: деление на ноль!");
return;
}
double result = (a + b) * c / (a - b);
Console.WriteLine($"Результат: {result}");
string parity = (result % 2 == 0) ? "Число четное" : "Число нечетное";
Console.WriteLine(parity);
}
}
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.