Г. Шилдт - Полный справочник по C#, страница 10
Описание файла
PDF-файл из архива "Г. Шилдт - Полный справочник по C#", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 10 страницы из PDF
Если этого не сделать, оно будет интерпретироваться как целое число. Например, в С# число 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);Результат выполнения» этой программы таков:I Площадь равна 314.16Очевидно, что вычисление площади круга не может быть вычислено с удовлетворительным результатом без использования данных с плавающей точкой.Первое знакомство с инструкциями управленияИнструкции внутри метода выполняются последовательно, можно сказать, сверхувниз.
Но такой ход выполнения можно изменить с помощью различных инструкцийуправления, поддерживаемых в С#. Подробно инструкции управления будут рассмотрены ниже, а пока мы кратко познакомимся с двумя из них, поскольку они используются в примерах программ, приведенных в этом разделе.Инструкция i fС помощью инструкции i f можно организовать избирательное выполнение частипрограммы. Действие инструкции i f в С# во многом подобно действию одноименнойинструкции в любом другом языке программирования. Что касается языков С, C++ иJava, то здесь налицо полная идентичность. Вот как выглядит простейшая форма записи этой инструкции:i f (условие) инструкция;Глава 2. Обзор элементов языка С#45Здесь элемент условие представляет собой булево выражение (которое приводитсяк значению ИСТИНА или ЛОЖЬ). Заданная инструкция будет выполнена, если условие окажется истинным.
В противном случае (если условие окажется ложным) заданная инструкция игнорируется. Рассмотрим следующий пример:I i f (10 < 11) Console.WriteLine("10 меньше 1 1 " ) ;В данном случае число 10 действительно меньше 11, т.е. условное выражение истинно, поэтому метод WriteLine () будет вызван. Рассмотрим другой пример:I i f ( 1 0 < 9) Console.WriteLine("Этот текст выведен не б у д е т . " ) ;Здесь же число 10 никак не меньше 9, поэтому вызов метода WriteLine () непроизойдет.В С# определен полный комплект операторов отношения, которые можно использовать в условных выражениях. Вот их список:<Меньше<=Меньше или равно>Больше>5ВБольше или равно==Равно!=Не равноСледующая программа иллюстрирует использование инструкции 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();с = а - 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("Значение с отрицательно");46Часть I.
Язык С#Результат выполнения этой программы имеет такой вид:а меньше bс содержит -1Значение с отрицательнос содержит 1Значение с неотрицательноОбратите внимание вот на что. В строке1 i n t a, b, с;объявляются сразу три переменных за счет использования списка элементов, разделенных запятой. Как упоминалось выше, две или больше переменных одинакового^типа можно объявить в одной инструкции, отделив их имена запятыми.Цикл f o rЧтобы многократно выполнить последовательность программных инструкций, необходимо организовать цикл. В языке С# циклические конструкции представлены вбогатом ассортименте. В этом разделе мы рассмотрим цикл for.
Если вы знакомы сС, C++ или Java, то вам будет приятно узнать, что цикл for в С# работает точно также, как в этих языках. Простейшая форма записи цикла for имеет следующий вид.for{инициализация; условие; итерация) инструкция;В самой общей форме элемент инициализация устанавливает управляющую переменную цикла равной некоторому начальному значению. Элемент условие представляет собой булево выражение, в котором тестируется значение управляющей переменной цикла. Если результат этого тестирования истинен, цикл for выполняетсяеще раз, в противном случае его выполнение прекращается.
Элемент итерация — этовыражение, которое определяет, как изменяется значение управляющей переменнойцикла после каждой итерации. Рассмотрим небольшую программу, в которой иллюстрируется цикл for.// Демонстрация циклаfor.using System;c l a s s ForDemo {public s t a t i c void Main() {i n t count;for(count = 0; count < 5; count = count+1)Console.WriteLine("Это счет: " + count);Console.WriteLine("Готово!") ;Вот как выглядит результат выполнения этой программы:Это счет: 0Это счет: 1Это счет: 2Это счет: 3Это счет: 4Готово!Глава 2. Обзор элементов языка С#47В этой программе управляющей переменной цикла является count. В выраженииинициализации цикла for она устанавливается равной нулю.
В начале каждой итерации (включая первую) выполняется проверка условия count < 5. Если результат этойпроверки окажется истинным, выполнится инструкция вывода строки WriteLine (), апосле нее — итерационное выражение цикла. Этот процесс будет продолжаться до техпор, пока проверка условия не даст в результате значение ЛОЖЬ, после чего выполнение программы возобновится с инструкции, расположенной за циклом.Интересно отметить, что в С#-программах, написанных профессиональнымипрограммистами, редко можно встретить итерационное выражение цикла в том виде,в каком оно представлено в рассматриваемой программе.
Другими словами, вряд ливы увидите инструкции, подобные следующей:I count = count + 1;Дело в том, что С# включает специальный оператор инкремента, который позволяет более эффективно выполнить операцию увеличения значения на единицу. Оператор инкремента обозначается двумя последовательными знаками "плюс" (++)• С егопомощью предыдущую инструкцию можно переписать следующим образом:ICOUnt++;Следовательно, начало цикла for в предыдущей программе опытный программистоформил бы так:I f o r ( c o u n t = 0; count < 5; count++)Если вам захочется выполнить предыдущую программу, используя оператор инкремента, вы убедитесь, что результат останется прежним.В С# также предусмотрен оператор декремента (—).
Нетрудно догадаться, что этотоператор уменьшает значение операнда на единицу.U Использование блоков кодаНе менее важным, чем инструкции управления, элементом языка С# являетсяпрограммный блок. Программный блок представляет собой группирование двух илиболее инструкций. Такое группирование инструкций реализуется посредством их заключения между открывающей и закрывающей фигурными скобками. После созданияблок кода становится логическим элементом программы, который можно использовать в любом ее месте, где может находиться одна инструкция.
Например, блок может_быть частью if- или for-инструкций. Рассмотрим следующую if-инструкцию:i f ( w < h) {v = w * h;w = 0;}Здесь сравниваются значения переменных w и h, и если оказывается, что w < h, тобудут выполнены обе инструкции внутри блока. Следовательно, две инструкции вблоке образуют логический элемент, в результате чего одна инструкция не можетбыть выполнена без выполнения другой. Важно то, что, если нужно логически связатьдве или более инструкций, это легко реализуется созданием программного блока.Именно благодаря блокам можно упростить код реализации многих алгоритмов и повысить эффективность их выполнения.Рассмотрим программу, в которой программный блок используется для предотвращения деления на нуль.I // Демонстрация использования программного блока.48Часть I. Язык С#using System;class BlockDemo {public static void Main() {int i, j, d;i = 5;j = 10;// Эта if-инструкция управляет программным// блоком, а не одной инструкцией,if(i != 0) {Console.WriteLine("i не равно нулю");d = j / i;Console.WriteLine("j / i равно " + d);IРезультат выполнения этой программы имеет следующий вид:i не равно нулюj / i равно 2В этом случае i f-инструкция управляет программным блоком, а не просто однойинструкцией.
Если управляющее условие if-инструкции окажется истинным (а онотаким здесь и является), будут выполнены все три инструкции, составляющие этотблок. Проведите небольшой эксперимент. Замените в этой программе инструкцию| i = 5;инструкциейi = 0;и сравните результат выполнения нового варианта программы со старым.А вот еще один пример. На этот раз программный блок используется для вычисления суммы чисел от 1 до 10 и их произведения.// Вычисляем сумму и произведение чисел от 1 до 10.using System;class ProdSum {static void Main() {int prod;int sum;int i;sum = 0;prod = 1;for(i=l; i <= 10; i++) {sum = sum + i;prod = prod * i;Console.WriteLine("Сумма равна " + sum);Console.WriteLine("Произведение равно " + prod);В результате выполнения программы получаем следующее:Глава 2.
Обзор элементов языка С#49I Сумма равна 55I Произведение равно 3628800Здесь (благодаря блоку) в одном цикле вычисляется как сумма чисел, так и ихпроизведение. Без этого средства языка пришлось бы использовать два отдельныхfor-цикла.И еще. Программные блоки не снижают динамику выполнения программ. Другими словами, наличие фигурных скобок ({ и }) не означает дополнительных затратвремени на выполнение программы.