C# - Главная Пространство имен
► System ► Microsoft Для учеников (начинающих)
► Видео уроки ► Обучение ► Примеры программ ► Секреты в Си Шарп Для профессионалов
► Обучение ► Примеры программ ► Задачки - для тебя! |
Приоритеты операторовПриведем простой пример. Пусть нам нужно вычислить значение переменной х после выполнения следующей строки кода: int х = 2 + 3 * 4; Если вычислять это выражение слева направо, то сначала нужно сложить числа 2 и 3, а затем результат умножить на 4. После подобных вычислений значение переменной х будет равно 20. Если же вычислять это выражение справа налево, то сначала нужно умножить 3 на 4, а затем к результату добавить 2. При этом в переменную х будет записано значение 14. Чтобы избежать неоднозначности, все операторы в языке С# (как, впрочем, и в других языках программирования) имеют свой приоритет. Более приоритетные операторы выполняются в первую очередь. В приведенном выше примере оператор умножения имеет высший приоритет по сравнению с оператором сложения, поэтому в результате вычисления получится значение 14. При необходимости мы можем задать порядок вычислений в составных выражениях подобного рода при помощи скобок, например: int х = (2 + 3) * 4; Здесь мы сообщаем компилятору, что вначале нужно сложить числа 2 и 3, а затем умножить полученный результат на 4. Для наглядности рекомендуется в сложных выражениях всегда задавать порядок выполнения операций явным образом. Это поможет избежать ошибок, связанных с неправильной оценкой приоритетов операторов. В таблице 4.4 приведена полная таблица приоритетов операторов С#. Таблица 4.4 - Приоритеты операторов
Как видите, по приоритету вначале выполняются простые операторы, затем унарные, после них — операторы умножения и деления, затем — сложения и сдвига. Операторы отношения, равенства и неравенства, а также логические операторы имеют низкий приоритет. Но самый низкий приоритет отдается операторам присваивания (простым и составным).
Просмотров: 4338 |