русс | укр

C# - Головна
Контакти
Задайте питання...
Перегляд всіх питань


Простір імен
  ► System (5)
  ► Microsoft (1)


Для учнів (початківців)
  ► Відео уроки (4)
  ► Навчання (177)
  ► Приклади програм (19)
  ► Секрети Сі Шарп (4)

Для професіоналів
  ► Навчання (6)
  ► Приклади програм (1)










Пріоритети операторів

Наведемо простий приклад.

Нехай нам треба обчислити значення змінної х після виконання наступної рядка коду:

int х = 2 + 3 * 4;

Якщо обчислювати вираз зліва направо, то спочатку потрібно скласти числа 2 і 3, а потім результат помножити на 4. Після подібних обчислень значення змінної х буде дорівнює 20.

Якщо ж обчислювати вираз справа наліво, то спочатку потрібно помножити 3 на 4, а потім до результату додати 2. При цьому в змінну х буде записано значення 14.

Щоб уникнути неоднозначності, всі оператори в мові С# (як, втім, і в інших мовах програмування) мають свій пріоритет. Більш пріоритетні оператори виконуються в першу чергу.

У наведеному вище прикладі оператор множення має вищий пріоритет порівняно з оператором додавання, тому в результаті обчислення вийде значення 14.

При необхідності ми можемо задати порядок обчислення складових виразах подібного роду за допомогою дужок, наприклад:

int х = (2 + 3) * 4;

Тут ми повідомляємо компілятору, що спочатку потрібно скласти числа 2 і 3, а потім помножити отриманий результат на 4.

Для наочності рекомендується в складних виразах завжди задавати порядок виконання операцій явним чином. Це допоможе уникнути помилок, пов'язаних з неправильною оцінкою пріоритетів операторів.

У таблиці 4.4 наведено повна таблиця пріоритетів операторів З#.

Таблиця 4.4 - Пріоритети операторів

Оператори Категорія
х. у f(x) a[x] х ++ х-- new typeof checked безконтрольно Прості оператори
+ - ! ~ ++x --x (T)x Унарні оператори
* / % Оператори множення і ділення
+ - Адитивні оператори
<< >> Оператори зсуву
< > <= >= is as Оператори відносини і перевірки типу
= = != Оператори рівності і нерівності
& Поразрядный оператор
^ Поразрядный оператор ВИКЛЮЧАЄ АБО
| Поразрядный оператор АБО
&& Логічний оператор
|| Логічний оператор АБО
?: Оператор умови
= *= /= %= += -= <<= >>= &= ^= |= Оператори присвоювання

Як бачите, по пріоритету спочатку виконуються прості оператори, потім унарні, після них — оператори множення і ділення, а потім додавання і зсуву. Оператори відносини, рівності і нерівності, а також логічні оператори мають низький пріоритет. Але найнижчий пріоритет віддається операторів присвоювання (простих та складених).

 

Переглядів: 2227






© 2012 ci-sharp.ru При використанні матеріалу пряме iндексуюче посилання на сайт ОБОВ'ЯЗКОВЕ.
Права строго захищені нормами міжнародного права, інтелектуальної власності та авторського права.