C# 4.0: полное руководство | страница 62




>// Продемонстрировать применение оператора %.

>using System;

>class ModDemo {

>  static void Main() {

>    int iresult, irem;

>    double dresult, drem;

>    iresult = 10 / 3;

>    irem = 10 % 3;

>    dresult = 10.0 / 3.0;

>    drem = 10.0 % 3.0;

>    Console.WriteLine("Результат и остаток от деления 10/3: "

>           + iresult + " " + irem);

>    Console.WriteLine("Результат и остаток от деления 10.0 / 3.0: "

>           + dresult + " " + drem);

>  }

>}


Результат выполнения этой программы приведен ниже.


>Результат и остаток от деления 10/3: 3 1

>Результат и остаток от деления 10.0 / 3.0: 3.33333333333333 1


Как видите, обе операции, % целочисленного типа и с плавающей точкой, дают один и тот же остаток, равный 1.


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

Операторы инкремента (++) и декремента (—) были представлены в главе 2. Как станет ясно в дальнейшем, они обладают рядом особых и довольно интересных свойств. Но сначала выясним основное назначение этих операторов.

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


>х+ + ;


равнозначен оператору х = х + 1; а оператор


>х--;


равносилен оператору


>х = х - 1;


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

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


>х = х + 1;


может быть записан в следующем виде:


>++х; // префиксная форма


или же в таком виде:


>х++; // постфиксная форма


В приведенном выше примере форма инкремента (префиксная или постфиксная) особого значения не имеет. Но если оператор инкремента или декремента используется в длинном выражении, то отличие в форме его записи уже имеет значение. Когда оператор инкремента или декремента предшествует своему операнду, то результатом операции становится значение операнда после инкремента или декремента. А когда оператор инкремента или декремента следует после своего операнда, то результатом операции становится значение операнда до инкремента или декремента. Рассмотрим следующий фрагмент кода.


>х = 10;

>у = ++х;


В данном случае значение переменной у будет установлено равным 11, поскольку значение переменной х сначала увеличивается на 1, а затем присваивается переменной у. Но во фрагменте кода


>х = 10;