1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 9
Текст из файла (страница 9)
Во-первых, для отображения строки "y содержитx/2: " используется не уже знакомый нам метод WriteLine(), а встроенный методWrite(). B этом случае выводимая текстовая строка не сопровождается символом новойстроки. Это означает, что выполнение очередной операции вывода данных будетначинаться на той же строке. Таким образом, метод Write() аналогичен методуWriteLine(), но с той лишь разницей, что после каждого вызова он не выводит символновой строки. Во-вторых, обратите внимание на то, что в обращении к методуWriteLine() переменная y используется самостоятельно, т.е. без текстовогосопровождения. Эта инструкция служит демонстрацией того, что как WriteLine(), так иWrite() можно использовать для вывода значений любых встроенных C#-типов,Необходимо также отметить, что с помощью одной инструкции можно объявитьсразу две или больше переменных.
Для этого достаточно разделить их имена запятыми.Например, в рассмотренной программе переменные x и y можно было объявитьследующим образом:int x, y; //Объявление обеих переменных в одной инструкции.Глава 2. Обзор элементов языка C#43Другие типы данныхВ предыдущей программе мы использовали переменную типа int. Однако впеременной типа int можно хранить только целые числа. Следовательно, ее нельзяиспользовать для обработки дробной части числа. Например, в int-переменной можетсодержаться значение 18, но отнюдь не значение 18,3. К счастью, тип данных int — неединственный тип, определенный в C#. Для обработки чисел с дробной частью в C#предусмотрены два типа данных с плавающей точкой, float и double, которыепредставляют значения с обычной и удвоенной точностью, соответственно.
(Тип doubleпользуется у программистов “повышенным спросом”.)Для объявления переменной типа double используйте инструкцию, подобнуюследующей:double result;Здесь result - это имя переменной типа double. Поскольку переменная resultимеет тип double, она может хранить такие значения, как 122,23, 0,034 или -19,0.Чтобы лучше понять различие между типами данных int и double, рассмотримследующую программу:/*Эта программа иллюстрирует различие междутипами int и double.*/using System;class Example3 {public static void Main() {int ivar; // Объявляем переменную типа int.double dvar; // Объявляем переменную типа double.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: 10044Часть I.
Язык C#ivar после деления: 33dvar после деления: 33.3333333333333Как видите, при делении переменной ivar на 3 выполняется операцияцелочисленного деления, результат которой равен 33, т.е. дробная часть отбрасывается. Нопри делении переменной dvar на 3 дробная часть сохраняется.Итак, если нужно определить в программе значение с плавающей точкой,необходимо включить в его представление десятичную точку. Если этого не сделать, онобудет интерпретироваться как целое число. Например, в C# число 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Очевидно, что вычисление площади круга не может быть вычисленоудовлетворительным результатом без использования данных с плавающей точкой.сПервое знакомство с инструкциями управленияИнструкции внутри метода выполняются последовательно, можно сказать, сверхувниз.
Но такой ход выполнения можно изменить с помощью различных инструкцийуправления, поддерживаемых в C#. Подробно инструкции управления будут рассмотреныниже, а пока мы кратко познакомимся с двумя из них, поскольку они используются впримерах программ, приведенных в этом разделе.Инструкция ifС помощью инструкции if можно организовать избирательное выполнение частипрограммы. Действие инструкции if в C# во многом подобно действию одноименнойинструкции в любом другом языке программирования. Что касается языков C, C++ и Java,то здесь налицо полная идентичность.
Вот как выглядит простейшая форма записи этойинструкции:if(условие) инструкция;Глава 2. Обзор элементов языка C#45Здесь элемент условие представляет собой булево выражение (которое приводитсяк значению ИСТИНА или ЛОЖЬ), Заданная инструкция будет выполнена, если условиеокажется истинным. В противном случае (если условие окажется ложным) заданнаяинструкция игнорируется. Рассмотрим следующий пример: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 {public static void Main() {int a, b, c;a = 2;b = 3;if(a < b) Console.WriteLine("а меньше b");// Следующая инструкция ничего не отобразит на экране.if(a == b) Console.WriteLine("Этого текста никто не увидит.");Console.WriteLine();}46}c = a - b; // Переменная c содержит -1.Console.WriteLine("c содержит -1");if(c >= 0) Console.WriteLine("Значение c неотрицательно");if(c < 0) Console.WriteLine("Значение c отрицательно");Console.WriteLine();c = b - a; // Теперь переменная c содержит 1.Console.WriteLine("c содержит 1");if(c >= 0) Console.WriteLine("Значение c неотрицательно");if(c < 0) Console.WriteLine("Значение c отрицательно");Часть I.
Язык C#Результат выполнения этой программы имеет такой вид:а меньше bc содержит -1Значение c отрицательноc содержит 1Значение c неотрицательноОбратите внимание вот на что. В строкеint a, b, c;объявляются сразу три переменных за счет использования списка элементов, разделенныхзапятой. Как упоминалось выше, две или больше переменных одинакового типа можнообъявить в одной инструкции, отделив их имена запятыми.Цикл forЧтобы многократно выполнить последовательность программных инструкций,необходимо организовать цикл. В языке C# циклические конструкции представлены вбогатом ассортименте. В этом разделе мы рассмотрим цикл for.
Если вы знакомы с C, C++или Java, то вам будет приятно узнать, что цикл for в C# работает точно так же, как в этихязыках. Простейшая форма записи цикла for имеет следующий вид.for(инициализация; условие; итерация) инструкция;В самой общей форме элемент инициализация устанавливает управляющуюпеременную цикла равной некоторому начальному значению. Элемент условиепредставляет собой булево выражение, в котором тестируется значение управляющейпеременной цикла. Если результат этого тестирования истинен, цикл for выполняется ещераз, в противном случае его выполнение прекращается. Элемент итерация — этовыражение, которое определяет, как изменяется значение управляющей переменной циклапосле каждой итерации.
Рассмотрим небольшую программу, в которой иллюстрируетсяцикл for.// Демонстрация цикла for.using System;class ForDemo {public static void Main() {int count;for(count = 0; count < 5; count = count+1)Console.WriteLine("Это счет: " + count);}}Console.WriteLine("Готово!");Вот как выглядит результат выполнения этой программы:Это счет: 0Это счет: 1Это счет: 2Это счет: 3Это счет: 4Готово!Глава 2. Обзор элементов языка C#47В этой программе управляющей переменной цикла является count.
В выраженииинициализации цикла for она устанавливается равной нулю. В начале каждой итерации(включая первую) выполняется проверка условия count < 5. Если результат этойпроверки окажется истинным, выполнится инструкция вывода строки WriteLine(), апосле нее — итерационное выражение цикла. Этот процесс будет продолжаться до тех пор,пока проверка условия не даст в результате значение ЛОЖЬ, после чего выполнениепрограммы возобновится с инструкции, расположенной за циклом.Интересно отметить, что в C#-программах, написанных профессиональнымипрограммистами, редко можно встретить итерационное выражение цикла в том виде, вкаком оно представлено в рассматриваемой программе. Другими словами, вряд ли выувидите инструкции, подобные следующей:count = count + 1;Дело в том, что C# включает специальный оператор инкремента, который позволяетболее эффективно выполнить операцию увеличения значения на единицу.