Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 2 Линейные выч. проц..doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
217 Кб
Скачать
☆

2.2 Операции и выражения

В С# предусмотрен широкий набор операций, которые дают в руки программисту мощные рычаги управления при создании разнообразнейших выражений и их вычислении.

Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами простейшего выражения могут быть константы, переменные и вызовы функций.

Например, у + 9 — это выражение, в котором + является знаком операции, а у и 9 — операндами. Пробелы внутри знака операции, состоящей из нескольких сим­волов, не допускаются. По количеству участвующих в одной операции опе­рандов операции делятся на унарные, бинарные и тернарную. Операции С# при­ведены в табл. 2.

Таблица 2 - Операции С#

Категория

Знак операции

Название

Первичные

.

х()

х[]

Х++

Х--

new

typeof

checked

unchecked

Доступ к элементу

Вызов метода или делегата

Доступ к элементу

Постфиксный инкремент

Постфиксный декремент

Выделение памяти

Получение типа

Проверяемый код

Непроверяемый код

Унарные

+

-

!

~

++X

--X

(тип) x

Унарный плюс

Унарный минус (арифметическое отрицание)

Логическое отрицание

Поразрядное отрицание

Префиксный инкремент

Префиксный декремент

Преобразование типа

Мультипликативные (типа умножения)

*

/

%

Умножение

Деление

Остаток от деления

Аддитивные (типа сложения)

+

-

Сложение

Вычитание

Сдвига

<<

>>

Сдвиг влево

Сдвиг вправо

Отношения и проверки типа

<

>

<=

>=

is

as

Меньше

Больше

Меньше или равно

Больше или равно

Проверка принадлежности типу

Приведение типа

Проверки на равенство

= =

! =

Равно

Не равно

Поразрядные логические

&

^

|

Поразрядная конъюнкция (И)

Поразрядное исключающее ИЛИ

Поразрядная дизъюнкция (ИЛИ)

Условные

логические

&&

| |

Логическое И

Логическое ИЛИ

Условная

? :

Условная операция

Присваивания

=

*=

/=

%=

+=

-=

<<=

>>=

&=

^=

| =

Присваивание

Умножение с присваиванием

Деление с присваиванием

Остаток отделения с присваиванием

Сложение с присваиванием

Вычитание с присваиванием

Сдвиг влево с присваиванием

Сдвиг вправо с присваиванием

Поразрядное И с присваиванием

Поразрядное исключающее ИЛИ с присваиванием

Поразрядное ИЛИ с присваиванием

Операции в выражении выполняются в определенном порядке в соответствии с приоритетами. В табл. 2 операции расположены по убы­ванию приоритетов, уровни приоритетов разделены в таблице горизонтальными линиями.

Результат вычисления выражения характеризуется значением и типом. Напри­мер, пусть х и у — переменные целого типа и описаны так:

int х = 7, у = 3;

Тогда выражение х + у имеет значение 10 и тип int, а выражение х = у имеет значе­ние, равное помещенному в переменную а (в данному случае — 3), и тип, совпа­дающий с типом этой переменной.

Если в одном выражении соседствуют несколько операций одинакового при­оритета, операции присваивания и условная операция выполняются справа налево, остальные — слева направо. Для изменения порядка выполнения опе­раций используются круглые скобки, уровень их вложенности практически не ограничен.

Например, а + b + с означает (а + b) + с, а х = b = с означает х = (b = с). То есть сначала вычисляется выражение b = с, а затем его результат становится правым операндом для операции присваивания переменной х.

Часто перед выполнением операции требуется вычислить значения операндов. Например, в выражении F(i) + G(i++) * Н(i) сначала вызываются функции F, G и H, а затем выполняются умножение и сложение. Операнды всегда вычисляются слева направо независимо от приоритетов операций, в которых они участвуют. Кстати, в приведенном примере метод H вызывается с новым значением i (увели­ченным на 1).