Г. Шилдт - С#4.0 Полное руководство (1160795), страница 11
Текст из файла (страница 11)
Любопытно, что в программах, профессионально написанных на СД вы вряд ли увидите итерационную часть оператора цикла в том виде, в каком она представлена в приведенном выше примере программы, т.е. вы редко встретите следующую строку. соидг = соипг + 1; Дело в том, что в СФ имеется специальный оператор инкремента, выполняющий приращение на 1 значение переменной, или так называемого операнда.
Этот оператор обозначается двумя знаками + (++). Используя оператор инкремента, можно переписать приведенную выше строку следующим образом. соипг+ю Таким образом, оператор цикла Гог из приведенного выше примера программы обычно записывается в следующем виде. Гог(соуп< = О; соипс < 51 соддс++) Опробуйте этот более краткий способ записи итерационной части цикла. Вы сами можете убедиться, что данный цикл выполняется так же, как и прежде.
В СЗ имеется также оператор декремента, обозначаемый двумя дефисами (--). Этот оператор уменьшает значение операнда на 1. Использование кодовых блоков Еще одним важным элементом СФ является кодовми блок, который представляет собой группу операторов. Для его организации достаточно расположить операторы 62 Часть!. Язык С() между открывающей и закрывающей фигурными скобками. Как только кодовый блок будет создан, он станет логическим элементом, который можно использовать в любом месте программы, где применяется одиночный оператор.
В частности, кодовый блок может служить адресатом операторов 15 и Гог. Рассмотрим следующий оператор 1Г. ьт(н < Ь) ( ч = н * А( и=0; Если в данном примере кода значение переменной н меньше значения переменной )т, то оба оператора выполняются в кодовом блоке. Они образуют внутри кодового блока единый логический элемент, причем один не может выполняться без другого.
Таким образом, если требуется логически связать два (или более) оператора, то для этой цели следует создать кодовый блок. С помощью кодовых блоков можно более эффективно и ясно реализовать многие алгоритмы. Ниже приведен пример программы, в которой кодовый блок служит для того, чтобы исключить деление на нуль. // Продемонстрировать применение кодового блока. оя1по Зуяпев; с1аяя В1осхпеио ясасьс чоьс) Маьп() ( ьпс 1, 1, б; 1 5) 1 = 10; // Адресатом этого оператора 15 служит кодовый блок. 1Г(1 )= О) ( Сопяо1е.Игьоевгпе("1 не равно нулю"); б=з /1) Сопяо1е.игьсеьгпе("1 / 1 равно " + б); Вот к какому результату приводит выполнение данной программы.
не равно нулю 1 / 1 равно 2 В данном примере адресатом оператора 1й служит кодовый блок, а не единственный оператор. Если условие, управляющее оператором 1Г, оказывается истинным, то выполняются три оператора в кодовом блоке. Попробуйте задать нулевое значение переменной 1, чтобы посмотреть, что из этого получится. Рассмотрим еще один пример, где кодовый блок служит для вычисления суммы и произведения чисел от 1 до 10.
// Вычислить сумму и произведение чисел от 1 до 10. ояьпч Буягегю Глава 2. Краткий обзор элементов С(г 63 с1аяя Ргсс(зпм ( ягаг1с яа10 маьп() ( ьпс ргсгб зпг яии; ьпг 1; япи = 0 ргсс = 1; Гсг(1=11 1 <= 10; 1яя) ( япи = япи я 1; ргсо = ргсо * 1; Сспяс1е.нггсе01пе("Сумма равна " + япз); Сспяс1е.иггсе11пе("Произведение равно " ь ргощ; ) ) Ниже приведен результат выполнения данной программы. Сумма равна 55 Произведение равно 3628800 В данном примере внутри кодового блока организуется цикл для вычисления суммы и произведения. В отсутствие такого блока для достижения того же самого результата пришлось бы организовать два отдельных цикла.
И последнее; кодовые блоки не снижают эффективность программ во время их выполнения. Иными словами, наличие символов ( и ), обозначающих кодовый блок, никоим образом не замедляет выполнение программы. В действительности применение кодовых блоков, как правило, приводит к повышению быстродействия и эффективности программ, поскольку они упрощают программирование определенных алгоритмов. Точка с запятой и оформление исходного текста программы В С№ точка с запятой обозначает конец оператора. Это означает, что каждый оператор в отдельности должен оканчиваться точкой с запятой. Как вы уже знаете, кодовый блок представляет собой набор логически связанных операторов, заключенных в фигурные скобки. Блок не оканчивается точкой с запятой, поскольку он состоит из группы операторов. Вместо этого окончание кодового блока обозначается закрывающей фигурной скобкой. В С№ конец строки не означает конец оператора — о его окончании свидетельствует только ~очка с запятой.
Именно поэтому оператор можно поместить в любой части строки. Например, на языке С№ строки кода х= у; з 1; сспяс1е.хглгеьгпе(х я " " ь у) означают то же самое, что и строка кода х = у; у = у я 1; Сспяс1е.иг1сегдпе (х ь " " я у) 64 Часть !. Язык Св' Более того, составные элементы оператора можно располагать в отдельных строках. Например, следующий фрагмент кода считается в Св вполне допустимым. Сопяо1е.иггтешпе!"Это длнннан строка вывода" х + у + т "дополнительный вывод"); Такое разбиение длинных строк нередко применяется для того, чтобы сделать исходный текст программы более удобным для чтения.
Оно помогает также исклзбчить заворачивание слишком длинных строк. Возможно, вы уже обратили внимание на то, что в предыдущих примерах программ некоторые операторы были набраны с отступом. В СФ допускается свободная форма записи. Это означает, что взаимное расположение операторов в строке не имеет особого значения. Но с юдами в программировании сложился общепринлтый стиль оформления исходного текста программ с отступами, что существенно облегчает чтение этого текста. Именно этому стилю следуют примеры программ в данной книге, что рекомендуется делать и вам. В соответствии с этим стилем следует делать отступ (в виде нескольких пробелов) после каждой открывающей фигурной скобки и возвращаться назад после закрывающеи фигурнои скобки. А для некоторых операторов даже требуется дополнительный отступ, но об этом речь пойдет далее.
Ключевые слова СУ Основу любого языка программирования составляют его ключевые слова, поскольку они определяют средства, встроенные в этот язык. В Св определены два общих типа ключевых слов: зарезервированные и конглексглные. Зарезервированные кЛючевые слова нельзя использовать в именах переменных, классов или методов. Их можно использовать только в качестве ключевых слов. Именно поэтому они и называются зарезервированными.
Их иногда еще называют зарезервированными словами, или зарезервированными иден лгификалзорам и. В настоящее время в версии 4.0 языка СФ определено 77 зарезервированных ключевых слов (табл. 2.1). Таблица 2.1. Ключевые слова, зарезервированные в языке Сй айяггаст ая Ьаяе Ьоо1 Ьгеах Ьусе саяе сагой айат айесхес! сопт1ппе с!еа ппа1 с!етап1г с1аяя сопят г!опЬ1е е15е епшп сзе1есате его 'ечепт ехр1татт та15е йпа11у ехтегп 1!хес! 1!оат сот Гогеасй дота 1ыр11с1т 1пт 1птеттасе гп 1пгегпа1 1оск 1опс патеярасе 15 пп11 ойтест оретагог оот пеы рготеатес! рпЬ1тс очегг1с!е регате рт1чате теаггоп1у ге 1 гетотп 5Ьуте яеа1ес! ятаска11ос ятат1с 5йогт 51теот ясг1пд ятгпст яы1тай тй1я тйтоы гуреев п1пт 51опс ппсйескес! тту ппяаге пяйогт чтгтпа1 ъо1атт1е пягпо чоЫ ый11е Глава 2.
Краткий обзор элементов С№ 65 Кроме того, в версии С(( 4.0 определены 18 контекстных ключевых слов, которые приобретают особое значение в определенном контексте. В таком контексте они выполняют роль ключевых слов, а вне его они могут использоваться в именах других элементов программы, например в именах переменных. Следовательно, контекстные ключевые слова формально не являются зарезервированными. Но, как правило, их следует считать зарезервированными, избегая их применения в любых других целях.
Ведь применение контекстного ключевого слова в качестве имени какого-нибудь другого элемента программы может привести к путанице, и поэтому считается многими программистами плохой практикой. Контекстные ключевые слова приведены в табл. 2.2. таблица 2.2. Контекстные ключевые слова в С№ с(упаю1с ггот сес д1оЬа1 лпво >о1п 1ег огс(егЬу сгопр рагсйа1 ве1есс ча1пе вес геюоче у1е1с( чаг Идентификаторы у2 МахЬоаг( ватр1е23 тевс сор пу чаг Помните, что идентификатор не может начинаться с цифры. Например, 12х — недействительный идентификатор. Хорошая практика программирования требует выбирать идентификаторы, отражающие назначение или применение именуемых элементов. Несмотря на то что зарезервированные ключевые слова нельзя использовать в качестве идентификаторов, в С№ разрешается применять ключевое слово с предшествующим знаком 6 в качестве допустимого идентификатора.
Например, 6 Тот — действительный идентификатор. В этом случае в качестве идентификатора фактически служит ключевое слово Гог, а знак 6 просто игнорируется. Ниже приведен пример программы, демонстрирующей применение идентификатора со знаком 6. Продемонстрировать применение идентификатора со знаком 6. пвгпэ Яувпею; с1авв тг(тевв ( вваСгс чоус( Маьп (( ( ьпв 61Г; !/ применение ключевого слова 1Г В С(( идентификатор представляет собой имя, присваиваемое методу, переменной или любому другому определяемому пользователем элементу программы.