|
Главная » 2010 » Февраль » 10 » Переменные и выражения
23:56 Переменные и выражения |
Переменные и выражения Возможно, наиболее фундаментальное определение компьютерной программы — "последовательность операций над данными". Это утверждение оказывается спра- ведливым даже для наиболее сложных случаев, таких, например, как развернутые, многофункциональные Windows-приложения типа Microsoft Office Suite. И хотя пользователи зачастую не задумываются над структурой приложений, внутренняя сущность последних заключается именно в этом. Попробуем проиллюстрировать сказанное на примере обычного компьютерного монитора. Когда вы смотрите на экран, трудно представить что-то кроме "движу- щейся картинки". Хотя на самом деле то, что вы видите, является всего лишь представлением некоторых данных, которые — в своем исходном виде — просто последовательность нулей и единиц, хранящихся где-то внутри компьютера. Какие бы действия вы ни выполняли на экране — перемещали бы курсор,.щелкали мышью по иконке или вводили текст в текстовом процессоре,— все это приводит к определенным изменениям данных, хранящихся в памяти. Можно привести и не столь абстрактный пример. Когда вы используете прило- жение-калькулятор, вы вводите данные, представленные в форме чисел, и выпол- няете над этими числами различные операции почти так же, как с помощью карандаша и бумаги, только намного быстрее! Итак, если фундаментальное свойство компьютерных программ заключается в выполнении операций над данными, то это предполагает наличие, во-первых, некоторого способа хранения данных и, во-вторых, определенных методов для вы- полнения манипуляций над ними. Для обеспечения этих двух функций используются соответственно переменные и выражения, и данная глава посвящена их изучению. Вначале, однако, нам придется рассмотреть базовый синтаксис, используемый при программировании на С#. Базовый синтаксис С# Внешне код на С# очень напоминает код на C++ или на Java. На первый взгляд этот синтаксис может показаться весьма запутанным и гораздо меньше по- хожим на обыкновенный письменный английский, чем некоторые другие языки. Однако, погрузившись в мир программирования на С#, вы обнаружите, что ис- пользуемый в нем стиль является весьма разумным, а написание удобочитаемых программ не представляет никаких сложностей. В отличие от компиляторов с некоторых других языков программирования, ком- пиляторы С# не обращают внимание на лишнее пустое пространство, которое мо- жет состоять из пробелов, возвратов каретки или символов табуляции (эти символы 22 Глава 3 известны под общим названием символов пустого пространства). Отсюда можно сделать вывод, что мы обладаем большой свободой в выборе способа форматиро- вания нашей программы, хотя следование определенным правилам помогает созда- вать более удобные для чтения программы. Код на С# представляет собой последовательность операторов, каждый из ко- торых оканчивается точкой с запятой. Поскольку пустое пространство игнорируется, то можно располагать по несколько операторов в одной строке; однако для того чтобы сделать программу более наглядной, принято размещать символ возврата каретки после каждой точки с запятой, в результате чего на строке располагается только один оператор. Хотя абсолютно приемлемо (и совершенно нормально) ис- пользовать операторы, которые занимают несколько строк кода. С# — язык, обладающий блочной структурой; другими словами, каждый опе- ратор является частью некоторого блока кода. Эти блоки, для обозначения начала и конца которых используются фигурные скобки { и }, могут содержать произволь- ное количество операторов или не содержать их вовсе. Обратите внимание, что фигурные скобки не сопровождаются точками с запятой. Итак, простой блок программы на С# может иметь следующий вид: <строка кода 1, оператор 1>; <строка кода 2, оператор 2> Здесь выражения <строка кода х, оператор у> не являются действительными составляющими кода на С#: этот текст используется для обозначения места, куда впоследствии будут помещены операторы С#. Обратите внимание, что в данном примере вторая и третья строки кода являются частями одного и того же операто- ра, поэтому после второй строки точка с запятой отсутствует. В этом простом примере кода использованы отступы, чтобы сделать запись на С# более наглядной. Такой подход не является изобретением автора — это обычная практика; в действительности VS автоматически делает такие отступы по умолчанию. Каждый блок кода имеет свою величину отступов, определяющую, насколько далеко вправо он сдвинут. Блоки могут быть вложены друг в друга (т. е. блоки могут содержать в себе другие блоки), и в таком случае величина от- ступа у вложенных блоков должна быть больше: , ' • • • ' ' ' ' • - • ' • <строка кода 2>; <строка кода 3>; • •... . ::Ч :V.:-: ^ •' .':: - ''' "" ' ' ••' ' " ""' }" ' ""'' Ft F- ' O^-f^ f:'^ У^Ш)^^ ' . . ' / ' "^ <строка кода 4>; } Кроме того, больший отступ обычно используется для тех строк кода, которые являются продолжением предшествующей строки, как в случае строки 3 в первом из приведенных примеров. Запомните: такой стиль ни в коем случае не является обязательным. Однако если вы не будете его использовать, то по мере прочтения этой книги вы будете путаться все сильнее и сильнее! Еще одна вещь, которая может часто встречаться в коде на С#, это коммента- рии. Строго говоря, комментарии не являются частью кода на С#, однако они спо- койно сосуществуют с ним. Предназначение комментариев в точности соответствует Переменные и выражения 23 их названию: они позволяют включать в программу описательный текст на обыч- ном английском (французском, немецком, монгольском и т. д.) языке, который игнорируется компилятором. Когда мы приступаем к созданию достаточно длинных сегментов кода, то бывает полезно включить в программу напоминание о том, что именно мы собираемся здесь сделать, например: "в этой строке кода у пользовате- ля запрашивается число" или "этот сегмент кода написан Бобом". В С# преду- смотрены два способа включения комментариев. Можно использовать либо специальные маркеры, обозначающие начало и завершение комментария, либо мар- кер, который означает, что "все, что находится за ним до конца строки, является комментарием". Последний способ является исключением из правила, о котором мы упоминали ранее и которое гласит, что компиляторы С# игнорируют все сим- волы возврата каретки, но это особый случай. Для того чтобы обозначить комментарии по первому способу, мы будем исполь- зовать сочетания символов /* в начале комментария и */ в конце комментария. Они могут располагаться как на одной строке, так и на разных строках; в послед- нем случае все строки, находящиеся между ними, также являются частью коммен- тария. Единственное, что не может входить в состав комментария,— это сочетание символов */, поскольку оно будет интерпретировано как конец комментария. Итак, вполне допустимы следующие комментарии: /* Это комментарий */ /* Так же, как . . . . . . и это! */ А вот приведенный ниже пример вызовет проблемы: /* Сочетание символов "*/" часто используется для завершения комментария */ В этом случае последняя часть комментария (символы, расположенные после */) будет интерпретирована как код С#, что приведет к возникновению ошибки. Другой подход к оформлению комментария состоит в использовании в качестве его начала символов //.В следующем за ними комментарии мы можем написать все, что угодно... но не более одной строки! Данный пример является правильным: // Это еще один вид комментария. А вот попытка воспользоваться следующим комментарием приведет к неудаче, поскольку вторая строка будет интерпретироваться как код на С#: //Это тоже комментарий, а вот это уже нет. Такой вид комментариев оказывается полезным для документирования отдель- ных операторов, поскольку весь комментарий целиком умещается на одной строке: <Некоторый оператор>; / / Объяснение данного оператора В С# существует еще и третий тип комментариев, который позволяет создавать документацию для программы. Этот комментарий также расположен на одной стро- ке, но в отличие от последнего случая начинается с трех символов /, а не с двух: /// Это особый вид комментария В обычных условиях эти комментарии игнорируются компилятором, как и все остальные, однако можно настроить VS таким образом, что текст этих коммента- риев при компиляции проекта будет извлекаться и использоваться для создания 24 __ Глава 3 специальным образом отформатированного текстового файла. На его основе в даль- нейшем можно создавать документацию по проекту. Этот вопрос будет детально рассматриваться в главе 18. Чрезвычайно важным моментом, который необходимо учитывать при работе с С#, является чувствительность этого языка к регистру. В отличие от некоторых других языков программирования, на С# текст необходимо вводить, в точности со- блюдая регистр, поскольку простая замена заглавной буквы на строчную приведет к прекращению компиляции проекта. Базовая структура консольного приложения на С# Давайте еще раз обратимся к примеру консольного приложения из предшеству- ющей главы (consoieAppiicationi) и потратим некоторое время на разбор струк- туры программы. Код приложения имеет следующий вид: using System; namespace ConsoieAppiicationi { /// <summary> /// Summary description for Classl. /// </summary> class Classl { static void Main (string [] args) { // // TODO: Add code to start application here // static void Main(string[] args) Console.WriteLine(*The first app in Beginning C# ProgrammingI"); Нетрудно заметить, что в этом приложении присутствуют все синтаксические элементы, обсуждавшиеся выше. Мы можем обнаружить здесь точки с запятыми, фигурные скобки, комментарии и отступы. Наиболее важной частью кода, насколько мы можем судить об этом на данный момент, является следующая: static void Main(string[] args) // TODO: Add code to start application here // static void Main(string[] args) Console.WriteLine(*The first app in Beginning C# Programmingi*); } Это тот код, который выполняется при запуске консольного приложения, или, если говорить немного точнее, тот заключенный в фигурные скобки блок кода, ко- торый и выполняется при запуске. Единственной строкой, выполняющей какие- либо действия, является строка, которую мы добавили к автоматически сгенериро- ванному коду и которая — одна из всех — не является комментарием. Этот код выводит некоторый текст в консольном окне, а точный механизм его работы нас пока не интересует. Поскольку основной задачей первых двух глав является объяснение базового синтаксиса С#, понимание того, каким образом выполнение приложения доходит до точки вызова console.writeLineо, сейчас не важно. Значимость этого дополни- тельного кода станет понятна позднее.
|
Категория: информатика |
Просмотров: 1130 |
Добавил: basic
| Рейтинг: 0.0/0 |
|
Статистика
Онлайн всего: 1 Гостей: 1 Пользователей: 0
|