Приоритет и ассоциативность операторов
Разберитесь в порядке вычисления и используйте скобки.
«Приоритет и ассоциативность операторов» — бесплатный урок C# Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Почему важен приоритет
Когда в выражении встречаются разные операторы, C# определяет порядок их выполнения с помощью приоритета. Операторы с более высоким приоритетом связываются сильнее и выполняются первыми.
using System;
class Program {
static void Main() {
Console.WriteLine(2 + 3 * 4);
}
}Умножение выполняется раньше сложения
* / % имеют более высокий приоритет, чем + -, поэтому выполняются первыми, как на уроках математики.
using System;
class Program {
static void Main() {
Console.WriteLine(10 - 2 * 3);
Console.WriteLine(20 / 4 + 1);
}
}Скобки меняют порядок
Скобки имеют наивысший приоритет. Используйте их, чтобы задать нужный порядок и сделать намерение понятным.
using System;
class Program {
static void Main() {
Console.WriteLine((2 + 3) * 4);
Console.WriteLine(2 + (3 * 4));
}
}Сравнение и арифметика
Арифметические операции выполняются до сравнения. В выражении a + b > c сначала происходит сложение, а затем сравнение.
using System;
class Program {
static void Main() {
int a = 3, b = 4, c = 5;
Console.WriteLine(a + b > c);
}
}Порядок логических операторов
&& имеет более высокий приоритет, чем ||. В выражении a || b && c сначала связывается AND.
using System;
class Program {
static void Main() {
bool r = true || false && false;
Console.WriteLine(r);
}
}Краткая схема приоритетов
Приблизительный порядок от высокого к низкому: скобки, унарные операторы (! ~ -), * / %, + -, сдвиги, сравнения, равенство, побитовые операторы, &&, ||, затем присваивание.
using System;
class Program {
static void Main() {
int x = 1 + 2 << 1;
Console.WriteLine(x);
}
}Ассоциативность: слева направо
Когда у операторов одинаковый приоритет, направление определяет ассоциативность. Большинство бинарных операторов ассоциативны слева направо: 10 - 4 - 2 — это (10 - 4) - 2.
using System;
class Program {
static void Main() {
Console.WriteLine(10 - 4 - 2);
Console.WriteLine(100 / 5 / 2);
}
}Присваивание с ассоциативностью справа налево
Присваивание ассоциативно справа налево. В выражении a = b = 5 сначала число 5 присваивается b, а затем полученный результат — a.
using System;
class Program {
static void Main() {
int a, b;
a = b = 5;
Console.WriteLine(a + " " + b);
}
}Унарные операторы связываются сильнее
Унарные !, ~ и отрицание выполняются до бинарных операторов. В выражении -3 + 2 сначала отрицается 3.
using System;
class Program {
static void Main() {
Console.WriteLine(-3 + 2);
Console.WriteLine(!false && true);
}
}Условный оператор
Тернарный оператор ?: имеет низкий приоритет, расположенный сразу над присваиванием. Заключайте сложные условия в скобки для безопасности.
using System;
class Program {
static void Main() {
int n = 7;
string s = n % 2 == 0 ? "even" : "odd";
Console.WriteLine(s);
}
}Ясность важнее хитрости
Даже если приоритет позволяет не ставить скобки, они часто делают код более понятным для чтения и проверки.
using System;
class Program {
static void Main() {
int a = 2, b = 3, c = 4;
int result = (a * b) + (c * 2);
Console.WriteLine(result);
}
}Быстрая проверка
Проверьте своё понимание приоритета и ассоциативности.
Повторение
Приоритет определяет, какие операторы выполняются первыми: * и / имеют более высокий приоритет, чем + и -, а скобки имеют приоритет над всеми операторами. Ассоциативность разрешает неоднозначность между операторами с одинаковым приоритетом: большинство выполняется слева направо, а присваивание — справа налево.
Если Вы сомневаетесь, добавьте скобки для ясности.
Изучай C# с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 93
- Уроки
- 346
Часто задаваемые вопросы
Урок «Приоритет и ассоциативность операторов» бесплатный?
Да — полный текст урока «Приоритет и ассоциативность операторов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Приоритет и ассоциативность операторов»?
Разберитесь в порядке вычисления и используйте скобки. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Приоритет и ассоциативность операторов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Арифметические операторы и операторы присваивания
- Операторы сравнения и логические операторы
- Побитовые операторы и операторы сдвига
- Приоритет и ассоциативность операторов