Герберт Шилдт - C# 4.0 полное руководство - 2011
- Название:C# 4.0 полное руководство - 2011
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание
C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
// Продемонстрировать применение оператора %.
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, а затем присваивается переменной у. Но во фрагменте кода
X = 10;
у = х++;
значение переменной у будет установлено равным 10, так как в этом случае значение переменной х сначала присваивается переменной у, а затем увеличивается на 1. В обоих случаях значение переменной х оказывается равным 11. Отличие состоит лишь том, когда именно это значение станет равным 11: до или после его присваивания переменной у.
Возможность управлять моментом инкремента или декремента дает немало преимуществ при программировании. Обратимся к следующему примеру программы, в которой формируется последовательный ряд чисел.
// Продемонстрировать отличие между префиксной // и постфиксной формами оператора инкремента (++).
using System;
class PrePostDemo { static void Main() { int* x, y;
У
int i;
x = 1;
У = 0;
Console.WriteLine("Ряд чисел, полученных " +
"с помощью оператора у = у + х++;"),
for(i = 0; i < 10; i++) {
у = у + х++; // постфиксная форма оператора ++
Console.WriteLine(у + " ");
}
Console.WriteLine();
х = 1; у = 0;
Console.WriteLine("Ряд чисел, полученных " +
"с помощью оператора у = у + ++х;")<
for(i = 0; i < 10; i++) {
у = у + ++х; // префиксная форма оператора ++
Console.WriteLine(у + " ");
}
Console.WriteLine();
}
}
Выполнение этой программы дает следующий результат.
Ряд чисел, полученных с помощью оператора у = у + х++
1
3
б
10
15
14
21
28
36
45
55
Ряд чисел, полученных с помощью оператора у = у + ++х;
2
5
9
14
20
27
35
44
54
65 .
Как подтверждает приведенный выше результат, в операторе
у = у + х++;
первоначальное значение переменной х складывается с самим собрй, а полученный результат присваивается переменной у. После этого значение переменной х увеличивается на 1. Но в операторе
у = у + ++х;
значение переменной х сначала увеличивается на 1, затем складывается с первоначальным значением этой же переменной, а полученный результат присваивается переменной у. Как следует из приведенного выше результата, простая замена префиксной формы записи оператора ++х постфиксной формой х++ приводит к существенному изменению последовательного ряда получаемых чисел.
И еще одно замечание по поводу приведенного выше примера: не пугайтесь выражений, подобных следующему:
у + ++Х
Такое расположение рядом двух операторов может показаться не совсем привычным, но компилятор воспримет их в правильной последовательности. Нужно лишь запомнить, что в данном выражении значение переменной у складывается с увеличенным на 1 значением переменной х.
Операторы отношения и логические операторы
В обозначениях оператор отношения и логический оператор термин отношения означает взаимосвязь, которая может существовать между двумя значениями, а термин логический — взаимосвязь между логическими значениями "истина 7' и "ложь". И поскольку операторы отношения дают истинные или ложные результаты, то они нередко применяются вместе с логическими операторами. Именно по этой причине они и рассматриваются совместно в данном разделе.
Ниже перечислены операторы отношения.
Оператор
Значение
==
Равно
I =
Не равно
>
Больше
<
Меньше
>=
Больше или равно
<=
Меньше или равно
К числу логических относятся операторы, приведенные ниже.
Оператор
Значение
&
И
1
ИЛИ
/ч
Исключающее ИЛИ
&&
Укороченное И
11
Укороченное ИЛИ
1
НЕ
Результатом выполнения оператора отношения или логического оператора является логическое значение типа bool.
Читать дальшеИнтервал:
Закладка: