Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 16
Текст из файла (страница 16)
Так, для указания типа 1опд к литералу присоединяется суффикс 1 или 1. Например, 12 — это литерал типа 1пС, а 121 — литерал типа 1ос р Для указания целочисленного типа без знака к литералу присоединяется суффикс и или О. Следовательно, 100 — это литерал типа 1пС, а 1000 — литерал типа иупС.
А для указания длинного целочисленного типа без знака к литералу присоединяется суффикс и1 или 01. Например, 98437501 — зто литерал типа п1опйс Кроме того, для указания типа 11оаС к литералу присоединяется суффикс Г или 1. Например, 10.19à — это литерал типа г1оаг. Можете даже указать тип с)ооЬ1е, присоединив к литералу суффикс с) или О, хотя это излишне. Ведь, как упоминалось выше, по умолчанию литералы с плавающей точкой относятся к типу с)оиЬ1е.
И наконец, для указания типа с)ес1ва1 к литералу присоединяется суффикс в или и. Например, 9. 95м — это десятичный литерал типа с)ес1ва1. Несмотря на то что целочисленные литералы образуют по умолчанию значения типа 1пС, о1пс, 1оп9 или п1оп9, их можно присваивать переменным типа Ьусе, зЬусе, эногс или изьогс, при условии, что присваиваемое значение может быть представлено целевым типом.
7с Часть (. йзык 6№ Шестнадцатеричные литералы Вам, вероятно, известно, что в программировании иногда оказывается проще пользоваться системой счисления по основанию 16, чем по основанию 10. Система счисления по основанию 16 называется шестнадцатеричной. В ией используются числа от 0 до 9, а также буквы от А до Б которыми обозначаются десятичные числа 10, 11, 12, 13, 14 и 15. Например, десятичному числу 16 соответствует шестнадцатеричное число 10. Вследствие того что шестнадцатеричные числа применяются в программировании довольно часто, в СФ разрешается указывать целочисленные литералы в шестнадцатеричном формате.
Шестнадцатеричные литералы должны начинаться с символов Ох, т.е. нуля и последующей латинской буквы "икс". Ниже приведены некоторые примеры шестнадцатеричных литералов. совок = ОхГГ; Л 255 в десятичной системе гпсг = Охга/ // 26 в десятичной системе Управляющие последовательности символов Большинство печатаемых символов достаточно заключить в одинарные кавычки, но набор в текстовом редакторе некоторых символов, например возврата каретки, вызывает особые трудности. Кроме того, ряд других символов, в том числе одинарные и двойные кавычки, имеют специальное назначение в С№, поэтому их нельзя использовать непосредственно. По этим причинам в С№ предусмотрены специальные управляющие последовательности символов, иногда еше называемые константами с обратной косой чертой (табл.
3.2). Такие последовательности применяются вместо тех символов, которых они представляют. Таблица 3.2. Управляющие последовательности символов Управляющая последовательность Описание 1а Звуковой сигнал (звонок) Возврат на одну позицию Перевод страницы (переход на новую страницу) Новая строка (перевод строки) Возврат каретки Горизонтальная табуляция Вертикальная табуляция Пустой символ Одинарная кавычка Двойная кавычка Обратная косая черта 1Ь 1п 1т 1ч 10 Например, в следующей строке кода переменной сь присваивается символ табуляции: сь= 1с; А в приведенном ниже примере кода переменной сп присваивается символ одинарной кавычки.
Глава 3. Типы данных, литералы и переменные 77 Строковые литералы В С() поддерживается еше один тип литералов — строковый. Строковый литерал представляет собой набор символов, заключенных в двойные кавычки. Например следующий фрагмент кода: Гата тест" представляет собой текстовую строку. Образцы подобных строк не раз встречались в приведенных выше примерах программ. Помимо обычных символов, строковый литерал может содержать одну или несколько управляющих последовательностей символов, о которых речь шла выше. Рассмотрим для примера программу, в которой используются управляющие последовательности хп и ) с. // Продемонстрировать применение управлякяих // последовательностей символов в строковых литералах. па1пч Яуасеи; с1азв Зтгоеио ( згаг1с чо1т) Малп() ( Сопло1е.иг1геслпе( "Первая строка1пВторая строка1птретья строка"); Сопао1е.иг1пес1пе("Один1СДва1стри"); Сопас1е.иг1геЬ1пе("Четмре1спять|сшесть")т // Вставить кавычки.
Сопло1е.иг1геЬ1пе("1"Зачем?1", спросил он."); ) Результат выполнения этой программы приведен ниже. Первая строка Вторая строка Третья строка ' Один Два Три Четыре Пять Шесть "Зачем?", спросил он. В приведенном выше примере программы обратите внимание на то, что для перехода на новую строку используется управляющая последовательность хп. Для вывода нескольких строк совсем не обязательно вызывать метод ИТ1геВ1пе () несколько раз — достаточно вставить управляющую последовательность | и в тех местах удлиненной текстовой строки (или строкового литерала), где должен происходить переход на новую строку.
Обратите также внимание на то, как в текстовой строке формируется знак вопроса. Помимо описанной выше формы строкового литерала, можно также указать буквальный строковый литерал. Такой литерал начинается с символа 6, после которого следует строка в кавычках. Содержимое строки в кавычках воспринимается без изменений и может быть расширено до двух и более строк. Это означает, что в буквальный строковый литерал можно включить символы новой строки, табуляции и прочие, не прибегзя к управляющим последовательностям.
Единственное исключение составляют двойные кавычки ("), для указания которых необходимо использовать две двойные кавычки подряд (""). В приведенном ниже примере программы демонстрируется применение буквальных строковых литералов. 78 Часть!. Язык Сэ // Продемонстрировать применение буквальных // строковых литералов. пвтпп зуягеи; с1азв уегпас1ю ( всасхс тоьб маьп() ( Сопзо1е.нгьееьъпе(8"Это буквальный строковый литерал, занимаюеий несколько строк.
")' Сопво1е.нгхсеььпе(6"а зто вывод с табуляцией: 1 2 3 4 5 б 7 8 ")) Сопво1е.нгъсеьвпе(6"Отзыв программиста: ""Мне нравится Ск."""); ) ) Результат выполнения этой программы приведен ниже. Это буквальный строковый литерал, занимающий несколько строк. Л зто вывод с табуляцией: 1 2 3 4 5 б 7 8 Отзыв программиста: "Мне нравится С4.' Следует особо подчеркнуть, что буквальные строковые литералы выводятся именно так, как они введены в приведенном выше примере программы. Преимущество буквальных строковых литералов заключается в том, что они позволяют указать в программе выводимый результат именно так, как он должен выглядеть на экране.
Но если выводится несколько строк, то переход на новую строку может нарушить порядок набора исходного текста программы с отступами. Именно по этой причине в примерах программ, приведенных в этой книге, применение буквальных строковых литералов ограничено. Тем не менее они приносят немало замечательных выгод во многих случаях, когда требуется форматирование выводимых результатов. И последнее замечание: не путайте строки с символами. Символьный литерал, например ' Х ', обозначает одиночную букву типа с)тат.
А строка, состоящая из одного символа, например "х", по-прежнему остается текстовой строкой. Более подробное рассмотрение переменных Переменные объявляются с помощью оператора следующей формы: тип имя переменной," где тип — это тип данных, хранящихся в переменной; имя переменной — это ее имя. Объявить можно переменную любого действительного типа, в том числе и описанных Глава 3. Типы данных, литералы и переменные 79 выше типов значений. Важно подчеркнуть, что возможности переменной определяются ее типом. Например, переменную типа Ьоо1 нельзя использовать для хранения числовых значений с плавающей точкой.
Кроме того, тип переменной нельзя изменять в течение срока ее существования. В частности, переменную типа 1пс нельзя преобразовать в переменную типа сйаг. Все переменные в С№ должны быть объявлены до их применения. Это нужно для того, чтобы уведомить компилятор о типе данных, хранящихся в переменной, прежде чем он попытается правильно скомпилировать любой оператор, в котором используется переменная.
Это позволяет также осуществлять строгий контроль типов в С№. В С№ определено несколько различных видов переменных. Так, в предыдущих примерах программ использовались переменные, называемые локальными, поскольку они объявляются внутри метода. Инициализация переменной тип имя переменной = значение; где значение — это конкретное значение, задаваемое при создании переменной. Это значение должно соответствовать указанному типу переменной.
Ниже приведены некоторые примеры инициализации переменных. // задать начальное значение 10 переменной соцпс. // инициализировать переменную сп букненным значением Х. // переменная Г инициализируется числовым значением 1,2. 1пг соцпс = 10> // сиаг сп = 'Х'; // 81оаС Г = 1.2Г // Если две или более переменные одного и того же типа объявляются списком, разделяемым запятыми, то этим переменным можно задать начальное значение. Например: ьпт а, Ь = 8, с = 19, О; // инициализировать переменные Ь и с В данном примере инициализируются только переменные Ь и с. Динамическая инициализация В приведенных выше примерах в качестве инициализаторов переменных использовались только константы, но в С№ допускается также динамическая инициализация переменных с помощью любого выражения, действительного на момент объявления переменной.