Чтение онлайн

ЖАНРЫ

Полное руководство. С# 4.0
Шрифт:

В предыдущем примере программы использовались переменные типа int. Но в переменных типа int могут храниться только целые числа. Их нельзя использовать в операциях с числами, имеющими дробную часть. Например, переменная типа int может содержать значение 18, но не значение 18,3. Правда, int — далеко не единствен ный тип данных, определяемых в С#. Для операций с числами, имеющими дробную часть, в C# предусмотрены два типа данных с плавающей точкой: float и double. Они обозначают числовые значения с одинарной и двойной точностью соответственно.

Из этих двух типов чаще всего используется тип double.

Для объявления переменной типа double служит оператор double result;

где result — это имя переменной типа double. А поскольку переменная result

имеет тип данных с плавающей точкой, то в ней могут храниться такие числовые зна чения, как, например, 122,23, 0,034 или -19,0.

Для лучшего понимания отличий между типами данных int и double рассмо трим такой пример программы. /* Эта программа демонстрирует отличия между типами данных int и double. */ using System; class Example3 { static void Main { int ivar; // объявить целочисленную переменную double dvar; // объявить переменную с плавающей точкой ivar = 100; // присвоить переменной ivar значение 100 dvar = 100.0; // присвоить переменной dvar значение 100.0 Console.WriteLine("Исходное значение ivar: " + ivar); Console.WriteLine("Исходное значение dvar: " + dvar); Console.WriteLine; // вывести пустую строку // Разделить значения обеих переменных на 3. ivar = ivar / 3; dvar = dvar / 3.0; Console.WriteLine("Значение ivar после деления: " + ivar); Console.WriteLine("Значение dvar после деления: " + dvar); } }

Ниже приведен результат выполнения приведенной выше программы. Исходное значение ivar: 100 Исходное значение dvar: 100 Значение ivar после деления: 33 Значение dvar после деления: 33.3333333333333

Как видите, при делении значения переменной ivar типа int на 3 остается лишь целая часть результата — 33, а дробная его часть теряется. В то же время при делении значения переменной dvar типа double на 3 дробная часть результата сохраняется. Как демонстрирует данный пример программы, в числовых значениях с плаваю щей точкой следует использовать обозначение самой десятичной точки. Например, значение 100 в С# считается целым, а значение 100,0 — с плавающей точкой. В данной программе обнаруживается еще одна особенность. Для вывода пустой строки достаточно вызвать метод WriteLine без аргументов.

Типы данных с плавающей точкой зачастую используются в операциях с реальными числовыми величинами, где обычно требуется дробная часть числа. Так, приведенная ниже программа вычисляет площадь круга, используя значение 3,1416 числа "пи". // Вычислить площадь круга. using System; class Circle { static void Main { double radius; double area; radius = 10.0; area = radius * radius * 3.1416; Console.WriteLine("Площадь равна " + area); } }

Выполнение этой программы дает следующий результат. Площадь равна 314.16

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

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

С помощью условного оператора if в C# можно организовать выборочное выпол нение части программы. Оператор if действует в C# практически так же, как и опера тор IF в любом другом языке программирования. В частности, с точки зрения синтак сиса он тождествен операторам if в С, C++ и Java. Ниже приведена простейшая форма этого оператора. if(условие) оператор;

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

оператора. if(10 < 11) Console.WriteLine("10 меньше 11");

В данном примере условное выражение принимает истинное значение, поскольку 10 меньше 11, и поэтому метод WriteLine выполняется. А теперь рассмотрим дру гой пример. if(10 < 9) Console.WriteLine("не подлежит выводу");

В данном примере 10 не меньше 9. Следовательно, вызов метода WriteLine не произойдет.

В C# определен полный набор операторов отношения, которые можно использовать в условных выражениях. Ниже перечислены все эти операторы и их обозначения.

Операция Значение < Меньше <= Меньше или равно

Больше = Больше или равно == Равно != Не равно

Далее следует пример еще одной программы, демонстрирующей применение условного оператора if. // Продемонстрировать применение условного оператора if. using System; class IfDemo { static void Main { int a, b, c; a = 2; b = 3; if(a < b) Console.WriteLine("а меньше b"); // He подлежит выводу. if(a == b) Console.WriteLine("этого никто не увидит"); Console.WriteLine; c = a - b; // с содержит -1 Console.WriteLine("с содержит -1"); if(с >= 0) Console.WriteLine("значение с неотрицательно"); if(с < 0) Console.WriteLine("значение с отрицательно"); Console.WriteLine; с = b - а; // теперь с содержит 1 Console.WriteLine("с содержит 1"); if(с >= 0) Console.WriteLine("значение с неотрицательно"); if(с < 0) Console.WriteLine("значение с отрицательно "); } }

Вот к какому результату приводит выполнение данной программы. а меньше b с содержит -1 значение с отрицательно с содержит 1 значение с неотрицательно

Обратите внимание на еще одну особенность этой программы. В строке int а, b, с;

три переменные, а, b и с, объявляются списком, разделяемым запятыми. Как упоми налось выше, если требуется объявить две или более переменные одного и того же типа, это можно сделать в одном операторе, разделив их имена запятыми. Оператор цикла

Для повторного выполнения последовательности операций в программе можно организовать цикл. Язык C# отличается большим разнообразием циклических кон струкций. Здесь будет рассмотрен оператор цикла for. Как и у оператора if, у опе ратора for в C# имеются аналоги в С, C++ и Java. Ниже приведена простейшая форма этого оператора. for(инициализация; условие; итерация) оператор;

В самой общей форме в части инициализация данного оператора задается началь ное значение переменной управления циклом. Часть условие представляет собой булево выражение, проверяющее значение переменной управления циклом. Если ре зультат проверки истинен, то цикл продолжается. Если же он ложен, то цикл завер шается. В части итерация определяется порядок изменения переменной управления циклом на каждом шаге цикла, когда он повторяется. Ниже приведен пример краткой программы, демонстрирующей применение оператора цикла for. // Продемонстрировать применение оператора цикла for. using System; class ForDemo { static void Main { int count; for(count = 0; count < 5; count = count+1) Console.WriteLine("Это подсчет: " + count); Console.WriteLine("Готово!"); } }

Вот как выглядит результат выполнения данной программы. Это подсчет: 0 Это подсчет: 1 Это подсчет: 2 Это подсчет: 3 Это подсчет: 4 Готово!

В данном примере count выполняет роль переменной управления циклом. В ини циализирующей части оператора цикла for задается нулевое значение этой перемен ной. В начале каждого шага цикла, включая и первый, проверяется условие count < 5. Если эта проверка дает истинный результат, то выполняется оператор, содержащий метод WriteLine. Далее выполняется итерационная часть оператора цикла for, где значение переменной count увеличивается на 1. Этот процесс повторяется до тех пор, пока значение переменной count не достигнет величины 5. В этот момент про верка упомянутого выше условия дает ложный результат, что приводит к завершению цикла. Выполнение программы продолжается с оператора, следующего после цикла.

Поделиться с друзьями: