Полное руководство. С# 4.0 - Шилдт Герберт
В языке программирования, вероятно, нет более важной конструкции, чем переменная. Переменная — это именованная область памяти, для которой может быть установлено значение. Она называется переменной потому, что ее значение может бытьизменено по ходу выполнения программы. Иными словами, содержимое переменнойподлежит изменению и не является постоянным.
В приведенной ниже программе создаются две переменные — х и у.// Эта программа демонстрирует применение переменных.using System;class Example2 { static void Main() { int x; // здесь объявляется переменная int у; // здесь объявляется еще одна переменная х = 100; // здесь переменной х присваивается значение 100 Console.WriteLine("х содержит " + х); у = х / 2; Console.Write("у содержит х / 2: "); Console.WriteLine(y); }}
Выполнение этой программы дает следующий результат.х содержит 100у содержит х / 2: 50
В этой программе вводится ряд новых понятий. Прежде всего, в оператореint х; // здесь объявляется переменная
объявляется переменная целочисленного типа с именем х. В C# все переменные должны объявляться до их применения. Кроме того, нужно обязательно указать тип значения, которое будет храниться в переменной. Это так называемый тип переменной.В данном примере в переменной х хранится целочисленное значение, т.е. целое число.Для объявления в C# переменной целочисленного типа перед ее именем указывается ключевое слово int. Таким образом, в приведенном выше операторе объявляетсяпеременная х типа int.
В следующей строке объявляется вторая переменная с именем у.int у; // здесь объявляется еще одна переменная
Как видите, эта переменная объявляется таким же образом, как и предыдущая,за исключением того, что ей присваивается другое имя.
В целом, для объявления переменной служит следующий оператор:тип имя_переменной;
где тип — это конкретный тип объявляемой переменной, а имя_переменной — имясамой переменной. Помимо типа int, в C# поддерживается ряд других типов данных.В следующей строке программы переменной х присваивается значение 100.х = 100; // здесь переменной х присваивается значение 100
В C# оператор присваивания обозначается одиночным знаком равенства (=).
Данный оператор выполняет копирование значения, расположенного справа от знакаравенства, в переменную, находящуюся слева от него.
В следующей строке программы осуществляется вывод на экран текстовой строки"х содержит " и значения переменной х.Console.WriteLine("х содержит " + х);
В этом операторе знак + обозначает, что значение переменной х выводится вследза предшествующей ему текстовой строкой. Если обобщить этот частный случай, тос помощью знака операции + можно организовать сцепление какого угодно числа элементов в одном операторе с вызовом метода WriteLine().
В следующей строке программы переменной у присваивается значение переменной х, деленное на 2.у = х / 2;
В этой строке значение переменной х делится на 2, а полученный результат сохраняется в переменной у. Таким образом, после выполнения данной строки в переменной у содержится значение 50. При этом значение переменной х не меняется. Каки в большинстве других языков программирования, в C# поддерживаются все арифметические операции, в том числе и перечисленные ниже.
Сложение
Вычитание
Умножение/ Деление
Рассмотрим две оставшиеся строки программы.Console.Write("у содержит х / 2: ");Console.WriteLine(у);
В этих строках обнаруживаются еще две особенности. Во-первых, для вывода текстовой строки "у содержит х / 2: " на экран используется встроенный метод Write().
После этой текстовой строки новая строка не следует. Это означает, чтопоследующий вывод будет осуществлен в той же самой строке. Метод Write() подобен методу WriteLine(), за исключением того, что после каждого его вызова вывод не начинается с новой строки. И во-вторых, обратите внимание на то, что в вызове метода WriteLine() указывается только переменная у. Оба метода, Write()и WriteLine(), могут быть использованы для вывода значений любых встроенных вC# типов.
Прежде чем двигаться дальше, следует упомянуть еще об одной особенности объявления переменных. Две иди более переменных можно указать в одном оператореобъявления. Нужно лишь разделить их запятой. Например, переменные х и у могутбыть объявлены следующим образом.int х, у; // обе переменные объявляются в одном операторе
ПРИМЕЧАНИЕВ C# внедрено средство, называемое неявно типизированной переменной. Неявнотипизированными являются такие переменные, тип которых автоматически определяетсякомпилятором. Подробнее неявно типизированные переменные рассматриваются в главе 3.Другие типы данных
В предыдущем примере программы использовались переменные типа 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
Очевидно, что вычисление площади круга не дало бы удовлетворительного результата, если бы при этом не использовались данные с плавающей точкой.Два управляющих оператора
Выполнение программы внутри метода (т.е. в его теле) происходит последовательно от одного оператора к другому, т.е. по цепочке сверху вниз. Этот порядок выполнения программы можно изменить с помощью различных управляющих операторов,поддерживаемых в С#. Более подробно управляющие операторы будут рассмотреныв дальнейшем, а здесь они представлены вкратце, поскольку используются в последующих примерах программ.Условный оператор