|
Программирование >> Обработка исключительных ситуаций
Примеры операторов присваивания: а = b + с / 2: b = а: а = Ь: х = 1; х = х + 0.5: Обратите внимание: Ь = аиа = Ь - это совершенно разные действия! ПРИМЕЧАНИЕ- Чтобы не перепутать, что чему присваивается, запомните мнемоническое прави. присваивание - это передача данных налево . Начинающие часто делают ошибку, воспринимая присваивание как аналог { венства в математике. Чтобы избежать этой ошибки, надо понимать ме> низм работы оператора присваивания. Рассмотрим для этого последний прим (х = х + 0.5). Сначала из ячейки памяти, в которой хранится значение переме ной х, выбирается это значение. Затем к нему прибавляется 0.5, после чего по./: чившийся результат записывается в ту же самую ячейку, а то, что хранило там ранее, теряется безвозвратно. Операторы такого вида применяются в щ граммировании очень широко. Для правого операнда операции присваивания должно существовать неявное щ образование к типу левого операнда. Например, выражение целого типа мож присвоить вещественной переменной, потому что целые числа являются подмг жеством вещественных, и информация при таком присваивании не теряется: вещественнаяпеременная := целоевыражение; Правила преобразований перечислены в разделе Преобразования встроенн] арифметических типов-значений (см. с. 45). Результатом операции присваивания является значение, записанное в лев] операнд. Тип результата совпадает с типом левого операнда. В сложных операциях присваивания ( + = , * = , /= и т. п.) при вычислении вырая ния, стоящего в правой части, используется значение из левой части. Наприм! при сложении с присваиванием ко второму операнду прибавляется первый, и j зультат записывается в первый операнд, то есть выражение а += b является 6oi компактной записью выражения а = а + Ь. Результатом операции сложного присваивания является значение, записанн в левый операнд. ПРИМЕЧАНИЕ- В документации написано, что тип результата совпадает с типом левого операн если он не менее i nt. Это означает, что если, например, переменные а и b имеют т byte, присваивание а += b недопустимо и требуется преобразовать тип явным об] зом: а += (byte)Ь. Однако на практике компилятор ошибку не выдает. Линейные программы Напомню, что операции присваивания правоассоциативны, то есть выполняются справа налево, в отличие от большинства других операций (а = Ь = с означает а = (Ь = с)) . Не рассмотренные в этом разделе операции будут описаны позже. Линейные программы Линейной называется программа, все операторы которой выполняются последовательно в том порядке, в котором они записаны. Простейшим примером линейной программы является программа расчета по заданной формуле. Она состоит из трех этапов: ввод исходных данных, вычисление по формуле и вывод результатов. Для того чтобы написать подобную программу, нам пока не хватает знаний о том, как организовать ввод и вывод на языке С#. Подробно этот вопрос рассматривается в главе 11, а здесь приводятся только минимально необходимые сведения. Простейший ввод-вывод Любая программа при вводе исходных данных и выводе результатов взаимодействует с внешними устройствами. Совокупность стандартных устройств ввода и вывода, то есть клавиатуры и экрана, называется консолью. Обмен данными с консолью является частным случаем обмена с внешними устройствами, который подробно рассмотрен в главе 11. В языке С#, как и во многих других, нет операторов ввода и вывода. Вместо них для обмена с внешними устройствами применяются стандартные объекты. Для работы с консолью в С# применяется класс Console, определенный в пространстве имен System. Методы этого класса Write и WriteLine уже использовались в наших программах. Поговорим о них подробнее, для чего внесем некоторые изменения в листинг 3.1. Результаты этих изменений представлены в листинге 3.9. Листинг 3.9. Методы вывода using System: namespace ConsoleApplicationl { class Classl { static void MainO { int i = 3; double у = 4.12: decimal d = 600m: string s = Вася ; Console WriteLineC i - + i ) ; Console WriteLineC y = {0} \nd -Console WriteLineC s = + s ) : {1} . y. d ); 1 2 Результат работы программы: 1 = 3 У = 4,12 d = 600 s = Вася До сих пор мы использовали метод WriteLine для вывода значений переменных и ли тералов различных встроенных типов. Это возможно благодаря тому, что в клас се Console существует несколько вариантов методов с именами Write и WriteLine предназначенных для вывода значений различных типов. Методы с одинаковыми именами, но разными параметрами называются перегру женными. Компилятор определяет, какой из методов вызван, по типу иередавае мых в него величин. Методы вывода в классе Consol е перегружены для всех встро енных типов данных, кроме того, предусмотрены варианты форматного вывода Листинг 3.9 содержит два наиболее употребительных варианта вызова методо) вывода. Сначала обратите внимание на способ вывода пояснений к значениял переменных в строках 1 и 3. Пояснения представляют собой строковые литера лы. Если метод WriteLine вызван с одним параметром, он может быть любой встроенного типа, например, числом, символом или строкой. Нам же требуете) вывести в каждой строке не одну, а две величины: текстовое пояснение и значе ние переменной, - поэтому прежде чем передавать их для вывода, их требуется склеить в одну строку с помощью операции +. Перед объединением строки с числом надо преобразовать число из его внутрен ней формы представления в последовательность символов, то есть в строку. Пре образование в строку определено во всех стандартных классах С# - для этоп служит метод ToStringO. В данном случае он выполняется неявно, но можно вы звать его и явным образом: Console.WriteLineC i = + i.ToStringO ); Оператор 2 иллюстрирует форматный вывод. В этом случае используется друпи вариант метода WriteLine, который содержит более одного параметра. Первым па раметром методу передается строковый литерал, содержащий помимо обычны: символов, предназначенных для вывода на консоль, параметры в фигурных скоб ках, а также управляющие последовательности (они были рассмотрены в главе 2) Параметры нумеруются с нуля, перед выводом они заменяются значениями со ответствующих переменных в списке вывода: нулевой параметр заменяется зна чением первой переменной (в данном примере - у), первый параметр - второ! переменной (в данном примере - d) и т. д. ПРИМЕЧАНИЕ- Для каждого параметра можно задать ширину поля вывода и формат вывода Мы рассмотрим эти возможности в разделе Форматирование строк (см. с. 146] Из управляющих последовательностей чаще всего используются символы пере вода строки (\п) и горизонтальной табуляции (\t).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |