Смекни!
smekni.com

Основы алгоритмизации и программирования 2 (стр. 5 из 32)

Второй способ заключается в одновременном объявлении переменной и присваивании ей значения, что фактически означает объединение двух строк программы

int age = 25;

Существует возможность совместного использования этих двух способов: int xSize = 4, ySize = 5;

В данном случае соответствующие значения присваиваются и переменной xSize, и переменной ySize.

1.3.Выражения

Для выполнения действий над переменными язык С# имеет целый набор операторов, в частности, оператор присваивания =. Записывая операторы в определенном сочетании с переменными и литеральными значениями (при использовании совместно с операторами они называются операндами), можно создавать выражения, которые являются основными строительными блоками компьютерных программ.

Существуют различные операторы, начиная от самых простых и до чрезвычайно сложных, которые редко встречаются где-либо, кроме как в математических приложениях. Простые операторы включают в себя все основные математические действия (например, оператор + производит сложение двух операндов), а сложные операторы предназначены для выполнения манипуляций над двоичным представлением содержимого переменной. Существуют также логические операторы, работающие с логическими значениями, и операторы присваивания типа =.

Все математические операторы могут быть условно разделены на три категории:

- унарные операторы, которые выполняют действие над единственным операндом;

- бинарные операторы, которые выполняют действие над двумя операндами;

- тринарные операторы, которые выполняют действие над тремя операндами.

Большинство операторов попадает в категорию бинарных; существует также несколько унарных операторов и единственный тринарный, называемый условным оператором (условный оператор представляет собой логический оператор, т. е. возвращает логическое значение.

1.3.1.Математические операторы

Существует пять простых математических операторов, причем два из них имеют как бинарную, так и унарную форму. В приведенной ниже таблице 6 перечислены все математические операторы, даны элементарные примеры их использования и показаны результаты их работы с простыми численными типами (целыми числами и числами с плавающей запятой).

Здесь приведены примеры с использованием простых численных типов, так как результаты, получаемые при действиях с другими простыми типами, могут оказаться неясными. Действительно, что можно получить при сложении двух логических переменных? Ничего, поскольку компилятор не позволит использовать оператор + (а также любые другие

Таблица 1.6.1 – Математический оператор сложения строк

Оператор

Значение

Пример использования в выражении

Результат

+

Бинарное

varl = var2 + var3;

Переменной varl присваивается значение, которое представляет собой результат объединения двух строк, хранящихся в переменных var2 и var3

Таблица 1.7 – Операторы инкремента и декремента в C#

Оператор

Значение

Пример

использования в выражении

Результат

++

Унарное

varl = ++var2;

Переменной varl присваивается значение переменной var2+1. Переменная var2 увеличивается на единицу

--

Унарное

varl = --var2;

Переменной varl присваивается значение переменной var2-l. Переменнаяvar2 уменьшается на единицу

++

Унарное

varl = var2++;

Переменной varl присваивается значение переменной var2. Переменная var2 увеличивается на единицу

--

Унарное

varl = var2--;

Переменной varl присваивается значение переменной var2. Переменнаяvar2 уменьшается на единицу

Таблица 1.6 – Математические операторы C#

Оператор

Значение

Пример использования в выражении

Результат

+

Бинарное

varl = var2 + var3;

Переменной varl присваивается значение, которое представляет собой сумму значений переменных var2 и var3

-

Бинарное

varl = var2 - var3;

Переменной varl присваивается значение, получающееся в результате вычитания значения переменнойvar3 из значения переменнойvar2

*

Бинарное

varl = var2 * var3;

Переменной varl присваивается значение, которое представляет собой результат перемножения

переменныхvar2 иvar3

/

Бинарное

varl = var2 / var3;

Переменной varl присваивается значение, которое представляет собой результат деления переменной var2 на переменную var3

%

Бинарное

varl = var2 % var3;

Переменной varl присваивается значение, которое представляет собой остаток от деления переменной var2 на переменнуюvar3

+

Унарное

varl = +var2;

Переменной varl присваивается значение переменнойvar2

Унарное

varl = -var2;

Переменной varl присваивается значение переменной var2, умноженное на -1

математические операторы) с переменными типа bool. Сложение переменных типа char также выглядит несколько

запутанным, поскольку переменные типа char на самом деле хранятся в виде чисел, поэтому результатом сложения двух переменных типа char также будет число (типа int, если быть точным). Такое действие представляет собой пример неявного преобразования типов.

Необходимо отметить, что бинарный оператор + имеет смысл и тогда, когда он используется с переменными типа string. В этом случае предыдущая таблица должна быть дополнена следующим (табл. 6.1).

Никакие другие математические операторы к строкам применяться не могут.

Два других оператора, это операторы увеличения (инкремент) и уменьшения (декремент), каждый из которых является унарным оператором и может использоваться одним из двух способов: либо непосредственно перед операндом, либо сразу после него (табл. 1.7).

Эти операторы всегда приводят к изменению значения, хранящегося в соответствующем операнде. Оператор ++ всегда увеличивает значение своего операнда на 1, а оператор – уменьшает его на 1. Отличие заключается в том результате, который записывается в переменную varl, поскольку местоположение оператора определяет порядок выполнения действий. Когда любой из этих двух операторов помещен перед операндом, он выполняется прежде какихлибо других вычислений. Размещение любого из этих двух операторов после операнда приводит к тому, что оператор выполняется после завершения всех остальных вычислений для данного выражения.

Рассмотрим следующий код:

int varl, var2 = 5, var3 = 6; varl = var2++ * --var3;

Вопрос: какое значение будет присвоено переменной varl? Перед тем как выражение начнет вычисляться, будет выполнен оператор --, расположенный перед переменной var3, что приведет к изменению ее значения с 6 на 5. Можно проигнорировать оператор ++, расположенный за переменной var2, поскольку он не будет оказывать никакого влияния до тех пор, пока вычисление этого выражения не будет завершено, поэтому в varl будет записан результат умножения 5 на 5, т. е. 25.

Эти простые унарные операторы оказываются чрезвычайно удобными в очень многих ситуациях. На самом деле они представляют собой просто сокращенную запись выражений вроде:

varl = varl + 1;

Такие выражения имеют очень широкое распространение, в частности, при организации циклов.

1.3.2.Операторы присваивания

До настоящего момента был использован простой оператор присваивания =, но существуют и другие операторы присваивания

Все другие операторы присваивания работают схожим с оператором = образом. Так же, как и у оператора =, результат их выполнения – присваивание расположенной слева переменной значения, вычисленного посредством операторов и операндов, расположенных в правой части.

Результатом использования дополнительных операторов присваивания является вовлечение переменной varl в вычисления, т. е. код вроде.

varl += var2;

приводит к получению точно такого же результата, что и код:

varl = varl + var2;

Оператор += может использоваться и со строками, так же, как и оператор +.

Использование этих операторов, особенно при работе с длинными именами переменных, позволяет сделать программу намного более удобочитаемой.

1.3.3.Старшинство операторов

При вычислении выражения все операторы выполняются в определенной последовательности. Это не означает, что они всегда выполняются слева направо. В качестве самого простого примера рассмотрим следующий оператор varl = var2 + var3;

Здесь оператор + выполняется перед оператором =.

Оператор

Значение

Пример

использования в выражении

Результат

Бинарное

varl = var2;

Переменной varl присваивается значение переменной var2

+=

Бинарное

varl += var2;

Переменной varl присваивается значение, которое представляет собой сумму переменных varl и var2

-=

Бинарное

varl -= var2;

Переменной varl присваивается значение, которое представляет собой разность, полученную в результате вычитания переменной var2 из переменной varl

*=

Бинарное

varl *= var2;

Переменной varl присваивается значение, которое представляет собой произведение переменных varl и var2

/=

Бинарное

varl /= var2;

Переменной varl присваивается значение, полученное в результате деления переменной varl на переменную var2

%=

Бинарное

varl %= var2;

Переменной varl присваивается значение, являющееся остатком от деления переменной varl на переменную var2

Таблица 1.8 – Операторы присваивания Существуют и другие ситуации, когда старшинство операторов не совсем очевидно, например: