Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретический_курс.doc
Скачиваний:
36
Добавлен:
10.11.2019
Размер:
7.68 Mб
Скачать

3.5.4. Применение операторов: арифметические операторы Применение операторов: арифметические операторы

1. Арифметические операторы

Арифметические операторы, представленные в С#, приведены ниже:

Оператор

Действие

+

Сложение

-

Вычитание, унарный минус

*

Умножение

/

Деление

%

Деление по модулю

--

Декремент

++

Инкремент

Операторы +, -, * и / действуют так, как предполагает их обозначение. Их можно применять к любому встроенному числовому типу данных.

Действие арифметических операторов не требует особых пояснений, за исключением следующих особых случаев. Прежде всего, не следует забывать, что когда оператор «/» применяется к целому числу, то любой остаток от деления отбрасывается; например, результат целочисленного деления 13 / 3 будет равен 4. Остаток от этого деления можно получить с помощью оператора деления по модулю «%», который иначе называется оператором вычисления остатка. Он даёт остаток от целочисленного деления. Например, 13 % 3 равно 1. В С# оператор % можно применять как к целочисленным типам данных, так и к типам с плавающей точкой. Поэтому 13.0 % 3.0 также равно 1. В этом отношении С# отличается от языков С и С++, где операции деления по модулю разрешаются только для целочисленных типов данных. Давайте рассмотрим следующий пример:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace LS_Console

{

class Program

{

static void Main(string[] args)

{

int num1, num2;

float f1, f2;

num1 = 13 / 3;

num2 = 13 % 3;

f1 = 13.0f / 3.0f;

f2 = 13.0f % 3.0f;

Console.WriteLine("Результат и остаток от деления 13 на 3: {0} __ {1}", num1, num2);

Console.WriteLine("Результат деления 13.0 на 3.0: {0:#.###} {1}", f1, f2);

Console.WriteLine("Для продолжения нажмите любую клавишу . . . ");

Console.ReadKey();

}

}

}

/* Выведет:

* Результат и остаток от деления 13 на 3: 4 __ 1

* Результат деления 13.0 на 3.0: 4,333 1

* Для продолжение нажмите любую клавишу . . .

*/

2. Операторы инкремента и декремента

Оператор инкремента «++» увеличивает свой операнд на 1, а оператор декремента «--» уменьшает операнд на 1. Следовательно, операторы:

x++;

x--;

Равнозначны операторам:

x = x +1;

x = x -1;

Следует, однако, иметь в виду, что в инкрементной или декрементной форме значение переменной x вычисляется только один, а не два раза. В некоторых случаях это позволяет повысить эффективность выполнения программы.

Оба оператора инкремента и декремента можно указывать до операнда (в префиксной форме) или же после операнда (в постфиксной форме). Давайте разберём разницу записи операции инкремента или декремента на примере:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace LC_Console

{

class Program

{

static void Main(string[] args)

{

short d = 1;

for (byte i = 0; i < 10; i++)

Console.Write(i + d++ + "\t");

Console.WriteLine();

d = 1;

for (byte i = 0; i < 10; i++)

Console.Write(i + ++d + "\t");

Console.WriteLine("Для продолжение нажмите любую клавишу . . . ");

Console.ReadKey();

}

}

}

/* Выведет:

* 1 3 5 7 9 11 13 15 17 19

* 2 4 6 8 10 12 14 16 18 20

* Для продолжение нажмите любую клавишу . . .

*/

Т.е. операция инкремента в постфиксной форме происходит раньше, нежели в префиксной форме, в результате чего числа из второго ряда получаются на единицу больше. Отметим также, что возможность управлять моментом инкремента или декремента даёт немало преимуществ при программировании.